X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsystemd.service.xml;h=1d804807721d5a613d51bf07ac75638791c11b73;hp=be9bdcaf99689d5e03d34ac3090f6ce0fdcebfca;hb=8d0e0ddda6501479eb69164687c83c1a7667b33a;hpb=bcddd5bf8033b0c9cb15a9d017b7714ebe21473a diff --git a/man/systemd.service.xml b/man/systemd.service.xml index be9bdcaf9..1d8048077 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -519,6 +519,20 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} following: /bin/kill -HUP $MAINPID + + Note however that reloading a + daemon by sending a signal (as with + the example line above) is usually not + a good choice, because this is an + asynchronous operation and hence not + suitable to order reloads of multiple + services against each other. It is + strongly recommended to set + ExecReload= to a + command that not only triggers a + configuration reload of the daemon, + but also synchronously waits for it to + complete. @@ -674,7 +688,7 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} processes specified with ExecStartPre=, ExecStartPost=, - ExecStopPre=, + ExecStop=, ExecStopPost=, or ExecReload=. When the death of the process is a @@ -689,51 +703,146 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} , , , + , , , or . If set to (the default), the - service will not be restarted. If set to - , it will be - restarted only when the service process - exits cleanly. - In this context, a clean exit means - an exit code of 0, or one of the signals + service will not be restarted. If set + to , it + will be restarted only when the + service process exits cleanly. In + this context, a clean exit means an + exit code of 0, or one of the signals SIGHUP, SIGINT, - SIGTERM, - or SIGPIPE, and - additionally, exit statuses and signals - specified in SuccessExitStatus=. + SIGTERM or + SIGPIPE, and + additionally, exit statuses and + signals specified in + SuccessExitStatus=. If set to , the service will be restarted when the - process exits with a non-zero exit code, - is terminated by a signal (including on - core dump), when an operation (such as - service reload) times out, and when the - configured watchdog timeout is triggered. - If set to - , the service - will be restarted only if the service - process exits due to an uncaught - signal not specified as a clean exit - status. - If set to - , the service - will be restarted only if the watchdog - timeout for the service expires. - If set to + process exits with a non-zero exit + code, is terminated by a signal + (including on core dump, but excluding + the aforementiond four signals), when + an operation (such as service reload) + times out, and when the configured + watchdog timeout is triggered. If set + to , the + service will be restarted when the + process is terminated by a signal + (including on core dump, excluding the + aforementioned four signals), when an + operation times out, or when the + watchdog timeout is triggered. If set + to , the + service will be restarted only if the + service process exits due to an + uncaught signal not specified as a + clean exit status. If set to + , the + service will be restarted only if the + watchdog timeout for the service + expires. If set to , the service - will be restarted regardless of whether - it exited cleanly or not, got + will be restarted regardless of + whether it exited cleanly or not, got terminated abnormally by a signal, or hit a timeout. + + Exit causes and the effect of the <varname>Restart=</varname> settings on them + + + + + + + Restart settings/Exit causes + + + + + + + + + + + + Clean exit code or signal + + X + X + + + + + + + Unclean exit code + + X + + X + + + + + + Unclean signal + + X + + X + X + X + + + + Timeout + + X + + X + X + + + + + Watchdog + + X + + X + X + + X + + + +
+ In addition to the above settings, the service will not be restarted if the exit code or signal is specified in RestartPreventExitStatus= - (see below). + (see below). + + Setting this to + is the + recommended choice for long-running + services, in order to increase + reliability by attempting automatic + recovery from errors. For services + that shall be able to terminate on + their own choice (and avoiding + immediate restart), + is an + alternative choice. + @@ -747,33 +856,30 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} SIGTERM, and SIGPIPE. Exit status definitions can either be numeric exit codes or termination signal names, - separated by spaces. Signals will only - be considered if the service does not implement - a signal handler and exits as a direct result - of receiving the signal. For example: - SuccessExitStatus=1 2 8 SIGKILL - ensures that exit codes 1, 2, 8 and - the termination signal - SIGKILL are - considered clean service terminations. - - - Note that if a process has a - signal handler installed and exits by - calling - _exit2 - in response to a signal, the - information about the signal is lost. - Programs should instead perform cleanup and kill themselves with the same signal instead. See - Proper handling of SIGINT/SIGQUIT — How to be a proper program. - - This option may appear more than once - in which case the list of successful - exit statuses is merged. If the empty - string is assigned to this option, the - list is reset, all prior assignments - of this option will have no - effect. + separated by spaces. For example: + SuccessExitStatus=1 2 8 SIGKILL + ensures that exit codes 1, 2, 8 and + the termination signal + SIGKILL are + considered clean service terminations. + + + Note that if a process has a + signal handler installed and exits by + calling + _exit2 + in response to a signal, the + information about the signal is lost. + Programs should instead perform cleanup and kill themselves with the same signal instead. See + Proper handling of SIGINT/SIGQUIT — How to be a proper program. + + This option may appear more than once, + in which case the list of successful + exit statuses is merged. If the empty + string is assigned to this option, the + list is reset, all prior assignments + of this option will have no + effect. @@ -861,7 +967,7 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} for all file descriptors passed via socket-based activation. If true, all file descriptors >= 3 (i.e. all except - STDIN/STDOUT/STDERR) will have + stdin, stdout, and stderr) will have the O_NONBLOCK flag set and hence are in non-blocking mode. This option is only @@ -1020,6 +1126,30 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} . + + RebootArgument= + Configure the optional + argument for the + reboot2 + system call if + StartLimitAction= + is a reboot action. This works just + like the optional argument to + systemctl reboot + command. + + + + FailureAction= + Configure the action + to take when the service enters a failed + state. Takes the same values as + StartLimitAction= + and executes the same actions. + Defaults to . + + + Check