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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
3 O" X: w4 L. Y% P
  • 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 Q# {( ]8 L9 V7 |5 r" X
0 A6 I' H2 x* D) R; I# N) I* J

" T% z3 P8 |& J" o3 u" ]' J* p   
  • 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 status5 T- n' g- \8 L. `% T2 m
        
1 M8 L% Z3 w8 F
' Q( R4 \; ?9 B+ s8 t, c' P/ B4 N( M, w2 c& w, m" G! {
NAME
# G: ~# R- |0 m+ ~       start-stop-daemon - start and stop system daemon programs
, t  k; G6 G! P; e" R( I/ j* ?
7 @9 Y1 J, {  y% m& Z9 USYNOPSIS0 b! ]/ |# Q7 q4 ~+ g6 P% I
       start-stop-daemon [option...] command; {* S  B" t/ P8 _& H8 k) y3 W4 P
  L  D7 ^  [; f4 w- D; {: Y
DESCRIPTION
+ r3 x( A' v" ?% Q       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. j; P3 h+ [2 d% o/ C; r
       find existing instances of a running process.2 ]8 a& d. L1 X& D3 p. M) j8 j0 M
* V  p( ~% ]6 n. a8 n
       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  processes- q  O8 b6 }' \
       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. H# d4 O; G; u+ `2 V) w+ l0 a9 O
       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  a
) U' l1 [+ c2 K) X       --stop, you must specify a pidfile.
+ [) {( \2 {9 l4 _! Z( ~7 P- H' h9 R# k6 }* Q9 l7 F6 n' y
COMMANDS0 z( U! z/ P0 ]7 ?3 y

" ]1 d& n2 B2 U4 g6 u! [" |/ B
( q$ S. n+ X2 @- c       -S, --start [--] arguments+ o5 A& Z% v- V1 ?- T
              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.
1 U( {3 G, o8 u& C8 G& I' R5 o1 l! T, i" T; k' C
       -K, --stop
5 p6 k' r% t3 u0 x              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 error5 ^' P2 t, a- Q
              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( H) w6 {1 D8 ?! S% D/ w: V6 w
              start-stop-daemon will check that the process(es) have terminated.
  P& m- K  G6 h" z4 T* U% j
. V4 f5 `6 c% `$ p       -T, --status
* ]) ]  Q4 p4 Y6 Y. w4 A( U              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).- @8 E& Q2 f8 w/ R  u& |" U* D

7 K, _, K- u0 {' b- r7 g       -H, --help; V7 o+ v: o% a! q  q7 C" e
              Show usage information and exit.3 b5 p) q3 D( M+ t

; V- O2 H7 s) }9 j( {  F2 z0 K8 v       -V, --version+ Z+ C& O. a3 b* [3 S6 V
              Show the program version and exit.
4 h1 ?, H. }, W4 v; x% f9 \
) A* B( O2 r) y% C% O  COPTIONS7 z: Z& I: }5 G4 P( D2 [: e
   Matching options* I$ ^* P4 q% J; U: f' o7 F
) J; ]( t& H8 h) K( N/ j- w  h
--pid pid
& E' g' }+ g, S0 q: S              Check for a process with the specified pid (since version 1.17.6).  The pid must be a number greater than 0.$ V, {$ J( f% }: S7 o$ R. N

/ C1 H6 Q; G+ ^7 f5 C; M3 m* r       --ppid ppid
& \& y8 V% n5 r! i1 C0 {  @# H+ C              Check for a process with the specified parent pid ppid (since version 1.17.7).  The ppid must be a number greater than 0.
# U! y: X/ k% }8 A9 _$ l
( A( w! `/ u, o& m6 |       -p, --pidfile pid-file
6 E$ t$ j. ]: R1 ^4 c% h6 y  m8 s              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 process4 G: P6 Z! s7 N: p. I) H
              terminated without being able to remove the pid-file.
5 y' n2 d! G: C) N) G' i6 _+ s, J1 t: s% d5 U! H  V6 O
       -x, --exec executable
; j& r. R3 b5 i7 p              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.
0 _0 z* f% @; Q( d6 [( W0 ^2 o3 Q6 d# Q$ S0 [/ I5 j, e. f
       -n, --name process-name
) m! a, x) k. I              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:  on, p. Q. w  _! L- G* W
              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 150 Q" L! ^7 a+ s+ f/ e
              characters is non-portable).6 L; X( s1 {; c! Z
0 A2 ]( Q$ l* q) q. V& g4 T3 l7 V
       -u, --user username|uid' f( I/ u/ @6 y( @
              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
, T  P( i& m' v+ e8 m              on.
9 j' t% d: O2 o: O3 q8 i7 V
" c  U* j4 D- r0 f( H4 w! V! qGeneric options
0 b0 R* P2 ^$ G- V2 g7 s0 T/ q       -g, --group group|gid
; b2 E" o& }& \- u3 D, E              Change to group or gid when starting the process." h: f. f. _+ E" x( P
/ d, u, C0 i# c
       -s, --signal signal# s1 a1 I3 [2 Z& D9 [4 _# v
              With --stop, specifies the signal to send to processes being stopped (default TERM).
! Z8 q1 ]3 F4 J( Z$ l+ c$ E# W; t. J1 G
  -b, --background
, C: y, R' e/ y7 q5 a              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# Z& A& h! s, t, c; v6 p( J- u
              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
$ [( z& f! i3 \  p2 l- b              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 V* e; e# q. Z6 W
  ~1 v( M9 R4 }
       -C, --no-close
. M2 E( ]' G! v' g              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$ h) }6 {# u9 I6 H# `0 U. C% j/ D
              redirect file descriptors to log the process output.  Only relevant when using --background.
$ X" o9 c& ]' L9 p5 d4 K9 w3 S0 [, W1 N& ~7 G6 K% t5 T" W# R
       -N, --nicelevel int+ @' M, Y! t. K5 d6 t8 [( ?
              This alters the priority of the process before starting it.+ A* Q3 U- E! J& E* ^

  G2 z9 _( b8 W8 D7 @       -P, --procsched policy:priority
: f- v6 X2 u0 v- `' M              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
/ j' ?1 y; E- f) S              appending a : followed by the value. The default priority is 0. The currently supported policy values are other, fifo and rr.
+ @6 {, k" D2 y" f; q6 h4 ~' |' b% \& i) x( k, E2 L
       -I, --iosched class:priority
  G3 [; o: L* {              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, T: E* ~/ [' T2 H2 ^' J
              : 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-
6 X8 s$ a; k. d: q              effort and real-time.
, L9 ^' l! c' P  \$ h4 p8 C! C4 b4 x, c; o& y/ i
       -k, --umask mask
/ p% p2 }' D$ \" a  k- \              This sets the umask of the process before starting it (since version 1.13.22).3 c3 l8 ]& _; S  Z. I
4 {0 I" Y0 F2 A+ d5 Q; K
       -m, --make-pidfile9 Q. s* n& d  ]  H2 e3 O  D' S
              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
* z9 b5 U8 G* Y- e, `7 g0 I8 \              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 feature1 b; D" O- _) w& U! [) C- r( o
              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$ Q% ~9 I" h, Z" T
              the --background option.- f9 ^7 N$ \2 ?$ |3 {

' b2 R+ N1 [# O2 }( q2 m: ?. X

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 12:13 , Processed in 0.140625 second(s), 22 queries , Gzip On.

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

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

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