【Linux】start-stop-daemon

 

 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
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

 

 

NAME
       start-stop-daemon - start and stop system daemon programs

SYNOPSIS
       start-stop-daemon [option...] command

DESCRIPTION
       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
       find existing instances of a running process.

       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
       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
       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
       --stop, you must specify a pidfile.

COMMANDS


       -S, --start [--] arguments
              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.

       -K, --stop
              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
              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
              start-stop-daemon will check that the process(es) have terminated.

       -T, --status
              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).

       -H, --help
              Show usage information and exit.

       -V, --version
              Show the program version and exit.

OPTIONS
   Matching options

 --pid pid
              Check for a process with the specified pid (since version 1.17.6).  The pid must be a number greater than 0.

       --ppid ppid
              Check for a process with the specified parent pid ppid (since version 1.17.7).  The ppid must be a number greater than 0.

       -p, --pidfile pid-file
              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
              terminated without being able to remove the pid-file.

       -x, --exec executable
              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.

       -n, --name process-name
              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
              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
              characters is non-portable).

       -u, --user username|uid
              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
              on.

Generic options
       -g, --group group|gid
              Change to group or gid when starting the process.

       -s, --signal signal
              With --stop, specifies the signal to send to processes being stopped (default TERM).

  -b, --background
              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
              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
              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.

       -C, --no-close
              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
              redirect file descriptors to log the process output.  Only relevant when using --background.

       -N, --nicelevel int
              This alters the priority of the process before starting it.

       -P, --procsched policy:priority
              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
              appending a : followed by the value. The default priority is 0. The currently supported policy values are other, fifo and rr.

       -I, --iosched class:priority
              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
              : 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-
              effort and real-time.

       -k, --umask mask
              This sets the umask of the process before starting it (since version 1.13.22).

       -m, --make-pidfile
              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
              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
              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
              the --background option.
 

linux系统命令start-stop-daemon的源码及二进制,其中也提供了一个服务启动脚本模板。 此程序能帮助你实现将命令行程序变成服务运行,比如将"java -jar xxx.jar" 放在后台执行。 ./start-stop-daemon --help start-stop-daemon 1.9.18 for Debian - small and fast C version written by Marek Michalkiewicz , public domain. Usage: start-stop-daemon -S|--start options ... -- arguments ... start-stop-daemon -K|--stop options ... start-stop-daemon -H|--help start-stop-daemon -V|--version Options (at least one of --exec|--pidfile|--user is required): -x|--exec program to start/check if it is running -p|--pidfile pid file to check -c|--chuid change to this user/group before starting process -w|--chdir change the work directory to 'dir' -u|--user | stop processes owned by this user -n|--name stop processes with this name -s|--signal signal to send (default TERM) -a|--startas program to start (default is ) -N|--nicelevel add incr to the process's nice level -b|--background force the process to detach -m|--make-pidfile create the pidfile before starting -R|--retry 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 is |//... where is one of -|[-] send that signal wait that many seconds forever repeat remainder forever or may be just , meaning //KILL/ Exit status: 0 = done 1 = nothing done (=> 0 if --oknodo) 3 = trouble 2 = with --retry, processes wouldn't die
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值