mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
pid1: make clear that $WATCHDOG_USEC is set for the shutdown binary, noone else
We use the $WATCHDOG_USEC variable for two very closely uses: as part of the sd_watchdog_enabled() protocol for implementing service watchdogs. And as part of the protocol between the service manager and systemd-shutdown across the PID 1 execve() transition during shutdown. Apparently some exitrds tools got confused by the latter use. Let's address that by setting $WATCHDOG_PID to 1, in accordance to the sd_watchdog_enabled() protocol to make clear this is only intended for PID 1 and nothing else. Replaces: #35135
This commit is contained in:
parent
1a077e05fb
commit
4b20ae9a0e
@ -1689,6 +1689,11 @@ static int become_shutdown(int objective, int retval) {
|
|||||||
/* Tell the binary how often to ping, ignore failure */
|
/* Tell the binary how often to ping, ignore failure */
|
||||||
(void) strv_extendf(&env_block, "WATCHDOG_USEC="USEC_FMT, watchdog_timer);
|
(void) strv_extendf(&env_block, "WATCHDOG_USEC="USEC_FMT, watchdog_timer);
|
||||||
|
|
||||||
|
/* Make sure that tools that look for $WATCHDOG_USEC (and might get started by the exitrd) don't get
|
||||||
|
* confused by the variable, because the sd_watchdog_enabled() protocol uses the same variable for
|
||||||
|
* the same purposes. */
|
||||||
|
(void) strv_extendf(&env_block, "WATCHDOG_PID=" PID_FMT, getpid_cached());
|
||||||
|
|
||||||
if (arg_watchdog_device)
|
if (arg_watchdog_device)
|
||||||
(void) strv_extendf(&env_block, "WATCHDOG_DEVICE=%s", arg_watchdog_device);
|
(void) strv_extendf(&env_block, "WATCHDOG_DEVICE=%s", arg_watchdog_device);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user