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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
( M) _7 y$ _2 z! ?( |9 Z
  • 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

  • + @0 h' i. B$ f8 S8 k

. A! d+ |/ k/ Y5 g1 ~' A' O! n4 M* P/ X3 S2 B9 }' c( p5 _: g8 f
   
  • 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 status
    " i' T& s3 M# j, q' P7 z2 P9 l
        9 ]1 ]- |- F9 [- i2 o; K

: U0 y7 c3 ~2 W2 }
8 I3 B; \" Y( qNAME0 o- ]3 p1 t, \* N
       start-stop-daemon - start and stop system daemon programs1 {8 V: R! f+ Q5 e" K& X

/ b# \% L1 A. T0 K  I* R, VSYNOPSIS# q1 P6 x& P; g  U* G& N
       start-stop-daemon [option...] command. _$ n# q, S# T& q0 Q/ r

/ s, w( Y% \* D2 j; zDESCRIPTION
3 |- ?6 y- l- l3 q& }% h5 i0 B       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
- r6 H( G. H) A7 K+ f, r4 V8 G$ M       find existing instances of a running process.! S+ a* H7 U: l; B7 s

; c3 ?! K' H" L8 X; R6 i       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  processes9 C3 L* @- X2 k7 u8 S0 g
       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, y7 W; N' t, k& D6 ]
       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. I5 m5 ^1 M+ g2 U: K
       --stop, you must specify a pidfile.7 y8 L& W/ w  ^2 n# O/ X& |6 h3 G

7 B( S* B% |( i' dCOMMANDS
" L+ w( R4 o  Y" l0 Y9 e
4 @0 ~; c1 S; H/ I
1 Z6 Q  [2 t' i       -S, --start [--] arguments2 ^8 W& f8 r$ K* l0 G& m
              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.
9 ~1 Y) W' M  d& h8 [+ k5 I7 N% O& ]& s2 }$ r4 {$ y; B9 t) @
       -K, --stop
- {: I: g; ?' P$ u# N) a& V1 Y              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
5 S! D/ q" f) A! S) `              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,  then1 x' |$ l  j% y  ]8 u
              start-stop-daemon will check that the process(es) have terminated.1 c- ^7 D; i# c: L9 H/ c: e
6 e; d( R6 |# \9 T
       -T, --status
' z* c) K4 T  m  A( F0 V              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).# ?- c- ~( B: p& j- {

$ S1 s8 G7 L. d       -H, --help
* A9 E+ G5 B0 d* h( b              Show usage information and exit.! M% L& C2 G- ?2 V; B( g! l

  `, U3 F: i) _8 A( J) v       -V, --version
3 ^( }( G- B8 T% J( n3 a; r              Show the program version and exit.
# A6 E, g0 q% u; j0 Z, F1 G% N" q5 Y; J. b, q
OPTIONS/ _0 e6 U  i! @0 Z7 R. v
   Matching options+ @3 M& ?0 \- J
2 x* |/ ?, K5 l- u6 y  y
--pid pid
! `+ W8 V+ c  B: R              Check for a process with the specified pid (since version 1.17.6).  The pid must be a number greater than 0.
7 }  p8 k1 `1 F- ]' T
( r0 y( Q+ x! t: y5 w7 k3 f       --ppid ppid7 ?9 Z, ?9 q( A4 m! G5 f+ M! p
              Check for a process with the specified parent pid ppid (since version 1.17.7).  The ppid must be a number greater than 0.
/ B& m$ r* T& ]) U  @
) M0 d5 C5 F" e" [       -p, --pidfile pid-file
+ m, r% C: I9 E7 f) R: J              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' {+ f; ?+ h+ }$ C
              terminated without being able to remove the pid-file.
( F  S* G4 u9 z3 h- p/ I3 o$ u. L% i. s
       -x, --exec executable
  M/ s: a3 j8 a* [! p/ i" i* e              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.
8 v+ F; ~. O) x7 g6 b: ]! s1 E, X# i$ b" `! T. q$ }
       -n, --name process-name
% d/ B( ^. f( ]2 L9 p5 o0 [) ?              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
/ v2 G4 k. ]/ i0 @7 E7 g. O% x2 C              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
* n% V4 J$ d" z' ^: m5 E              characters is non-portable).  ~: o" s4 f9 p3 H$ `6 N. W

, g: }  l. ^- K; e; D# f! N8 c& b+ A) F       -u, --user username|uid
; I6 {$ R' I4 r, a! k              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
0 X  S+ h( G, ~; J/ W" ~              on.
3 b9 p% W# O4 n
/ k& a" q; ^. ~7 ^' I% BGeneric options( u4 {& H+ y* o4 t5 F) H
       -g, --group group|gid  N0 e- }2 H( r2 Y5 }) p
              Change to group or gid when starting the process.* c: S' H# {( g- }1 p5 M5 w2 c5 f

; Z6 e- r- K( O/ r2 C  o5 B5 A       -s, --signal signal) H, J; W4 w# H: a+ N9 K6 C
              With --stop, specifies the signal to send to processes being stopped (default TERM).' L( M' e/ ~: a. n3 O* r/ C+ Z
9 v4 U) _1 x: C. P( r! v
  -b, --background
1 e, ~/ A( Z( D+ L2 }/ I* u. G              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  the0 s' T1 m1 E2 E5 f
              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
6 o4 N7 O0 J) A" K! 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.
+ _# z- V! ]6 r4 G
. O3 V; @3 `& A, A' s       -C, --no-close- _& F! n2 H. F3 h
              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
9 f2 M$ o/ A3 a              redirect file descriptors to log the process output.  Only relevant when using --background./ U; v' N7 b: S1 p

9 s3 Y3 v- W. O( d! E% i6 Y% g- L0 d       -N, --nicelevel int2 E; ?# F0 C  p9 I- Z# l
              This alters the priority of the process before starting it.
8 e4 J# N% R3 V1 }  i* s; K) o, K7 ]5 ~% y( V& j3 q4 u
       -P, --procsched policy:priority
7 |/ m( Z: ?( W# N: b6 G' A- s              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
, w5 v  A# t& M: W8 x; B: [  F! {              appending a : followed by the value. The default priority is 0. The currently supported policy values are other, fifo and rr.
& i% ?$ N/ N' E4 U7 g3 s2 \
( q' d; U/ ~/ R' `2 S       -I, --iosched class:priority! b" C2 b2 q& w/ A! P9 c& [
              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
2 S/ S2 i8 h4 y) i, _" S              : 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-
' X5 |# i3 T' V5 g7 H0 m              effort and real-time.
5 v1 S6 a$ r) d& o# f- t% T+ b- E' U* q: s( \1 A7 i+ [# ^
       -k, --umask mask6 q4 g# ?5 Z% ?1 @5 R
              This sets the umask of the process before starting it (since version 1.13.22).
' B' b5 d! ^8 t! e% F2 v
% }) Y1 G' T. B. `5 Q7 }       -m, --make-pidfile  H8 X/ M. b" n) p4 g# `
              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
2 b6 u% L. Z4 p4 A3 o: U  W              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 feature
/ x! ?+ u/ I  r- ?              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 with4 t/ n5 R( B1 ^. _, ?) e
              the --background option.6 W1 L. u* ?) Q1 L7 Y+ j

2 Y+ K* _' q3 n# X" _

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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