找回密码
 注册
关于网站域名变更的通知
查看: 326|回复: 1
打印 上一主题 下一主题

Linux-------start-stop-daemon

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-13 15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

; K3 k& S' L/ _+ M
  • start-stop-daemon
  • BusyBox v1.26.2 (2018-08-02 17:42:03 CST) multi-call binary.
  • Usage: start-stop-daemon [OPTIONS] [-S|-K] ... [-- ARGS...]
  • Search for matching processes, and then
  • -K: stop all matching processes.
  • -S: start a process unless a matching process is found.
  • Process matching:
  •         -u,--user USERNAME|UID  Match only this user's processes
  •         -n,--name NAME          Match processes with NAME
  •                                 in comm field in /proc/PID/stat
  •         -x,--exec EXECUTABLE    Match processes with this command
  •                                 in /proc/PID/{exe,cmdline}
  •         -p,--pidfile FILE       Match a process with PID from the file
  •         All specified conditions must match
  • -S only:
  •         -x,--exec EXECUTABLE    Program to run
  •         -a,--startas NAME       Zeroth argument
  •         -b,--background         Background
  •         -N,--nicelevel N        Change nice level
  •         -c,--chuid USER[:[GRP]] Change to user/group
  •         -m,--make-pidfile       Write PID to the pidfile specified by -p
  • -K only:
  •         -s,--signal SIG         Signal to send
  •         -t,--test               Match only, exit with 0 if a process is found
  • Other:
  •         -o,--oknodo             Exit with status 0 if nothing is done
  •         -v,--verbose            Verbose
  •         -q,--quiet              Quiet

  • 3 b0 C9 U. n# P0 }6 Z

+ ]% X' h- n2 X) c- H! T0 k9 X: y- S: ~' i/ f4 [3 J
   
  • chad@ape:/$ start-stop-daemon --help
  • Usage: start-stop-daemon [<option>...] <command>
  • Commands:
  •   -S, --start -- <argument>...  start a program and pass <arguments> to it
  •   -K, --stop                    stop a program
  •   -T, --status                  get the program status
  •   -H, --help                    print help information
  •   -V, --version                 print version
  • Matching options (at least one is required):
  •       --pid <pid>               pid to check
  •       --ppid <ppid>             parent pid to check
  •   -p, --pidfile <pid-file>      pid file to check
  •   -x, --exec <executable>       program to start/check if it is running
  •   -n, --name <process-name>     process name to check
  •   -u, --user <username|uid>     process owner to check
  • Options:
  •   -g, --group <group|gid>       run process as this group
  •   -c, --chuid <name|uid[:group|gid]>
  •                                 change to this user/group before starting
  •                                   process
  •   -s, --signal <signal>         signal to send (default TERM)
  •   -a, --startas <pathname>      program to start (default is <executable>)
  •   -r, --chroot <directory>      chroot to <directory> before starting
  •   -d, --chdir <directory>       change to <directory> (default is /)
  •   -N, --nicelevel <incr>        add incr to the process' nice level
  •   -P, --procsched <policy[:prio]>
  •                                 use <policy> with <prio> for the kernel
  •                                   process scheduler (default prio is 0)
  •   -I, --iosched <class[:prio]>  use <class> with <prio> to set the IO
  •                                   scheduler (default prio is 4)
  •   -k, --umask <mask>            change the umask to <mask> before starting
  •   -b, --background              force the process to detach
  •       --notify-await            wait for a readiness notification
  •       --notify-timeout <int>    timeout after <int> seconds of notify wait
  •   -C, --no-close                do not close any file descriptor
  •   -m, --make-pidfile            create the pidfile before starting
  •       --remove-pidfile          delete the pidfile after stopping
  •   -R, --retry <schedule>        check whether processes die, and retry
  •   -t, --test                    test mode, don't do anything
  •   -o, --oknodo                  exit status 0 (not 1) if nothing done
  •   -q, --quiet                   be more quiet
  •   -v, --verbose                 be more verbose
  • Retry <schedule> is <item>|/<item>/... where <item> is one of
  • -<signal-num>|[-]<signal-name>  send that signal
  • <timeout>                       wait that many seconds
  • forever                         repeat remainder forever
  • or <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout>
  • The process scheduler <policy> can be one of:
  •   other, fifo or rr
  • The IO scheduler <class> can be one of:
  •   real-time, best-effort or idle
  • Exit status:
  •   0 = done
  •   1 = nothing done (=> 0 if --oknodo)
  •   2 = with --retry, processes would not die
  •   3 = trouble
  • Exit status with --status:
  •   0 = program is running
  •   1 = program is not running and the pid file exists
  •   3 = program is not running
  •   4 = unable to determine status8 i7 A/ m% ?" X) I5 s. C, |2 T
        5 q$ ~! N6 n7 O: U, E2 Z
8 g* K5 t2 G9 t, C1 K, f) V

/ \) v" x9 F$ Z: Z4 zNAME) m2 ^2 D; J* p. S1 B- ~
       start-stop-daemon - start and stop system daemon programs
+ J5 \& v: K+ _  m6 v* @8 z8 T( t! k: H/ X* Q
SYNOPSIS4 x  M9 l, j$ |+ E5 @/ q+ q
       start-stop-daemon [option...] command
! [  H9 v' Z( }& [5 f( Q6 A3 [, O' N; k: a; k5 Y6 }3 A( ]
DESCRIPTION+ Q4 |# k( [6 z' k# e0 @: z
       start-stop-daemon  is  used to control the creation and termination of system-level processes.  Using one of the matching options, start-stop-daemon can be configured to! O/ b+ v7 s7 [1 }# |' h- [
       find existing instances of a running process.
. h* n. d2 A/ B% A9 l) j; J8 y; N- L6 _' [
       Note: unless --pid or --pidfile are specified, start-stop-daemon behaves similar to killall(1).  start-stop-daemon will scan the process table looking for any  processes7 a6 A& J& G$ j4 z% B; D7 T& T
       which match the process name, parent pid, uid, and/or gid (if specified). Any matching process will prevent --start from starting the daemon. All matching processes will
" P& n1 M/ D8 w  k9 e       be sent the TERM signal (or the one specified via --signal or --retry) if --stop is specified. For daemons which have long-lived children which need to  live  through  a7 n5 l% v4 S7 X& c$ O6 N" [& ~$ C
       --stop, you must specify a pidfile.1 L8 G+ C" H) Y7 r! H
1 t& K$ i7 g( b3 O
COMMANDS' K( b/ L; H/ p8 w
* b. \/ R" B. v7 j0 \. e1 R

4 M9 f7 V  n2 ?! o5 r       -S, --start [--] arguments+ q  E% I# L1 S, J5 n9 F/ h7 u8 c
              Check  for  the  existence  of  a  specified  process.   If such a process exists, start-stop-daemon does nothing, and exits with error status 1 (0 if --oknodo is specified).  If such a process does not exist, it starts an instance, using either the executable specified  by  --exec  or,  if  specified,  by  --startas.   Any arguments given after -- on the command line are passed unmodified to the program being started.% Y# j8 R1 ]$ W! Z/ }; x- K

4 q! w" Q7 C- ^& b" N       -K, --stop
. E: x# Q* U% E              Checks  for  the  existence  of  a specified process.  If such a process exists, start-stop-daemon sends it the signal specified by --signal, and exits with error
& j" d) g. c2 ~0 m) n+ C" j/ j              status 0.  If such a process does not exist, start-stop-daemon exits  with  error  status  1  (0  if  --oknodo  is  specified).  If  --retry  is  specified,  then+ z8 j0 A) u8 w* N4 ^/ |
              start-stop-daemon will check that the process(es) have terminated.
! N* P% X, K+ b8 B9 v5 d# g2 U1 ?' r0 Y9 O9 I* p
       -T, --status  ^; l& n9 h0 x# U# z
              Check for the existence of a specified process, and returns an exit status code, according to the LSB Init Script Actions (since version 1.16.1).
7 O+ k: ]) O5 d
) d/ ~7 i  [8 }, I       -H, --help6 R' b. a, V5 C: D1 A! F; U
              Show usage information and exit.
& R! d/ T. [. N9 }. [% V. \/ ]: p& ~2 H% a, d2 g
       -V, --version
5 o2 c  ?+ s2 N! ?$ u              Show the program version and exit.
. I+ T: M* p5 }# A( D% `
4 Y# M' n6 m, z& s% s1 x& H; POPTIONS* B6 K" ?; T6 B5 F2 {9 x8 D
   Matching options  S# C- [4 N# O$ Z
0 @( B3 a, ~* l1 y# S. o
--pid pid
5 v. _* |1 |% V6 p% m! d7 `* s              Check for a process with the specified pid (since version 1.17.6).  The pid must be a number greater than 0.) V- f3 [8 U/ {  R4 h
; x5 v4 p) J" i3 k1 B
       --ppid ppid& E; W0 k+ |! [* _
              Check for a process with the specified parent pid ppid (since version 1.17.7).  The ppid must be a number greater than 0.5 x3 z; l4 i2 k' g- Q9 H
; i1 T( }  N( v5 x; F# ]! _; @5 j
       -p, --pidfile pid-file
/ p! g: {  V" F! V, d/ ?( Z0 E  `              Check  whether a process has created the file pid-file. Note: using this matching option alone might cause unintended processes to be acted on, if the old process% i7 ]9 N9 x' R. \6 N2 o, [- n
              terminated without being able to remove the pid-file.$ v; v/ l2 f8 c+ z! l( V$ M
# @5 t) I2 s0 r. C
       -x, --exec executable
! ~: `; q) A9 @: _, s3 ^$ L              Check for processes that are instances of this executable. The executable argument should be an absolute pathname. Note: this might  not  work  as  intended  with interpreted  scripts,  as  the  executable  will point to the interpreter. Take into account processes running from inside a chroot will also be matched, so other match restrictions might be needed.
3 Q* h" B% f  g# o, X7 q
0 h) J+ @  f$ N7 R       -n, --name process-name; ~8 @- O6 H! U- v
              Check for processes with the name process-name. The process-name is usually the process filename, but it could have been changed by the process itself.  Note:  on3 T# t" f, i9 t' E
              most  systems this information is retrieved from the process comm name from the kernel, which tends to have a relatively short length limit (assuming more than 15
3 Y9 p/ Y! h/ p' f              characters is non-portable).
4 q) Q5 w+ b7 u0 B
  c. G7 U2 ?+ [       -u, --user username|uid
/ R7 Y. @0 b1 J7 Y3 h( U/ l- R' l) i              Check for processes owned by the user specified by username or uid. Note: using this matching option alone will cause all processes matching the user to be  acted/ z* G6 _/ v0 r# j% Q' C/ n& y
              on.
' r  r1 l% p  s% R2 @0 l0 D$ D8 E& C! t/ v# T) s" J! G
Generic options* f( K) u5 n, h. `; E, P
       -g, --group group|gid
/ A* i1 @& j7 I0 H; ]1 }              Change to group or gid when starting the process.
5 \* W. @# m* B8 V; k6 s# V/ k" F% a8 P. d5 t
       -s, --signal signal
" {" L# T% u+ p0 V) b$ `. n& K' h              With --stop, specifies the signal to send to processes being stopped (default TERM).
' }" E8 U, z  e4 O) ^! ~& z1 W, L0 C1 b7 m! Y: |- s& J
  -b, --background
6 H9 _1 W+ e% n( u5 n. N              Typically used with programs that don't detach on their own. This option will force start-stop-daemon to fork before starting the process, and force it  into  the
+ D: S& s2 K- ]$ U: l: Y              background.   Warning: start-stop-daemon cannot check the exit status if the process fails to execute for any reason. This is a last resort, and is only meant for, U- ^5 N  q" t  _
              programs that either make no sense forking on their own, or where it's not feasible to add the code for them to do this themselves.
2 Q4 W; n; S& U
. u8 K- P+ Z5 p9 }0 B$ X8 f5 D       -C, --no-close  J% [' q% m7 p6 y8 _9 F% {  O2 y
              Do not close any file descriptor when forcing the daemon into the background (since version 1.16.5).  Used for debugging purposes to see the process output, or to
3 f. ?4 j3 o' I9 a) v* b              redirect file descriptors to log the process output.  Only relevant when using --background.- v+ _) z) S; o) u/ A1 l
+ b9 j0 J. z) \' @1 }. X- @
       -N, --nicelevel int
% q8 d( m& J6 ?6 G6 f; d- m              This alters the priority of the process before starting it.$ t5 @1 `4 j1 L3 x5 O/ z

$ k8 X% _3 O% t& {       -P, --procsched policy:priority) A9 ?  G( U0 r' w0 l
              This  alters  the  process  scheduler  policy  and priority of the process before starting it (since version 1.15.0).  The priority can be optionally specified by
6 o0 C4 e/ [2 ^/ P$ e/ l2 {, G; x6 p( k% @              appending a : followed by the value. The default priority is 0. The currently supported policy values are other, fifo and rr.$ h3 @) M& t  [3 Y& i' x% w1 T

8 ]0 U. ]% K. \       -I, --iosched class:priority( F, b; F5 C9 m* z3 T
              This alters the IO scheduler class and priority of the process before starting it (since version 1.15.0).  The priority can be optionally specified by appending a: N6 n0 B; C9 P% n: P- _3 L
              : followed by the value. The default priority is 4, unless class is idle, then priority will always be 7. The currently supported values for class are idle, best-. Q7 w3 @" z1 P5 e+ H
              effort and real-time.& s/ f. o3 Y# q* _4 O1 K* \
: B: L* D) b" i9 }8 b9 h$ Q( }7 W
       -k, --umask mask3 V8 N3 C% k" i' k7 |) _" K
              This sets the umask of the process before starting it (since version 1.13.22).
, @- \4 m% ]: n8 Y
* a# G9 A: q6 \5 H$ _       -m, --make-pidfile
& W& `. N6 o6 v- z              Used when starting a program that does not create its own pid file. This option will make start-stop-daemon create the file referenced with  --pidfile  and  place  q5 `% }8 ?& k1 h4 R6 F
              the  pid into it just before executing the process. Note, the file will only be removed when stopping the program if --remove-pidfile is used.  Note: This feature3 }1 F# m9 Y# t& U8 g  z" u
              may not work in all cases. Most notably when the program being executed forks from its main process. Because of this, it is usually only useful when combined with
, j, {  X1 N/ y: M' f  A4 C              the --background option.8 {3 m( u* r. a$ j: E
7 J  x, Z3 x4 r4 q& R1 W2 W

该用户从未签到

2#
发表于 2021-4-13 17:00 | 只看该作者
Linux-------start-stop-daemon
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 15:31 , Processed in 0.171875 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表