From 80ccf68f55dbb70d7e5ed52ee95b3c9d1b6ce264 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Thu, 20 Mar 2025 11:07:49 +0100 Subject: vault backup: 2025-03-20 11:07:48 --- 3 Resources/Systemd/Systemd restart signal.md | 25 +++++++++++++++++++++++++ 3 Resources/Systemd/Unit types.md | 5 ++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 3 Resources/Systemd/Systemd restart signal.md (limited to '3 Resources/Systemd') 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 -- cgit v1.2.3