diff options
author | Jasper Ras <jras@hostnet.nl> | 2025-03-20 11:07:49 +0100 |
---|---|---|
committer | Jasper Ras <jras@hostnet.nl> | 2025-03-20 11:07:49 +0100 |
commit | 80ccf68f55dbb70d7e5ed52ee95b3c9d1b6ce264 (patch) | |
tree | 93e28e85ab70052aa6f577998ec7dc1f413b40c0 /3 Resources/Systemd | |
parent | 9642cd7ae24f0ba79ce5647c709b35ae8f06a285 (diff) |
vault backup: 2025-03-20 11:07:48
Diffstat (limited to '3 Resources/Systemd')
-rw-r--r-- | 3 Resources/Systemd/Systemd restart signal.md | 25 | ||||
-rw-r--r-- | 3 Resources/Systemd/Unit types.md | 5 |
2 files changed, 29 insertions, 1 deletions
diff --git a/3 Resources/Systemd/Systemd restart signal.md b/3 Resources/Systemd/Systemd restart signal.md new file mode 100644 index 0000000..3497069 --- /dev/null +++ b/3 Resources/Systemd/Systemd restart signal.md @@ -0,0 +1,25 @@ +--- +tags: + - systemd + - restart +references: + - https://www.reddit.com/r/linuxquestions/comments/10eu3i0/does_systemctl_restart_send_sigterm_signal/?rdt=64556 +--- +By default, `restart` does exactly the same thing as `stop` followed by `start`. + +`stop` will: + +- execute `ExecStop=` commands, if any; + +- send the signal defined by `KillSignal=` (default: `SIGTERM`), to any remaining processes identified by the `KillMode=`; + +- send `SIGCONT` to those same processes; + +- if `SendSIGHUP=` is true (default: false), send `SIGHUP` to those same processes; + +- if `SendSIGKILL=` is true (default: true), and any processes remain after `TimeoutStopSec=`, send the `FinalKillSignal=` (default: `SIGKILL`) to those remaining processes; + +- execute `ExecStopPost=` commands, if any. + + +`restart` changes this by using `RestartKillSignal=` instead of `KillSignal=`, but if `RestartKillSignal=` is not set it just inherits its value from `KillSignal=`. And, of course, `restart` then performs all the regular `start` actions after everything else. `restart` also differs from `stop` by not flushing the file descriptor store associated with the service.
\ No newline at end of file diff --git a/3 Resources/Systemd/Unit types.md b/3 Resources/Systemd/Unit types.md index 27ee387..51bb40f 100644 --- a/3 Resources/Systemd/Unit types.md +++ b/3 Resources/Systemd/Unit types.md @@ -5,10 +5,13 @@ tags: --- The `Type` directive is specified within the `Service` section. There are 6 different types; - **Simple**: The default if `Type` nor `Busname` are specified. +- **Exec** : similar to simple but waits a bit more for the service to be started successfully - **Forking**: Used when the parent process exits immediately due to it forking. Systemd will know it's still running even though it exited. - **Oneshot**: When the process is short-lived and doesn't need to keep running. Systemd will wait on the process before starting other units. - **Dbus**: The process will be registered on the D-Bus bus. - **Notify**: Systemd will expect a notification from the process to signal it has started up blocking the execution of other units until the signal is received. - **Idle**: Service will not run ufntil all jobs are dispatched. #clarify -https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files#unit-specific-section-directives
\ No newline at end of file +https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files#unit-specific-section-directives + +**Exec** is recommended by `man systemd.service` for long-running services.
\ No newline at end of file |