mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
manager: pass monitor metadata in more cases
The first ExecStartPre or the first ExecStart commands would get the metadata, but not the subsequent ones. Also check that we do not pass it in ExecStartPost.
This commit is contained in:
parent
02de9614d4
commit
a257c941ad
@ -2459,6 +2459,7 @@ static void service_run_next_control(Service *s) {
|
||||
EXEC_APPLY_SANDBOXING|EXEC_APPLY_CHROOT|EXEC_IS_CONTROL|
|
||||
(IN_SET(s->control_command_id, SERVICE_EXEC_CONDITION, SERVICE_EXEC_START_PRE, SERVICE_EXEC_STOP_POST) ? EXEC_APPLY_TTY_STDIN : 0)|
|
||||
(IN_SET(s->control_command_id, SERVICE_EXEC_STOP, SERVICE_EXEC_STOP_POST) ? EXEC_SETENV_RESULT : 0)|
|
||||
(IN_SET(s->control_command_id, SERVICE_EXEC_START_PRE, SERVICE_EXEC_START) ? EXEC_SETENV_MONITOR_RESULT : 0)|
|
||||
(IN_SET(s->control_command_id, SERVICE_EXEC_START_POST, SERVICE_EXEC_RELOAD, SERVICE_EXEC_STOP, SERVICE_EXEC_STOP_POST) ? EXEC_CONTROL_CGROUP : 0),
|
||||
&s->control_pid);
|
||||
if (r < 0)
|
||||
@ -2495,7 +2496,7 @@ static void service_run_next_main(Service *s) {
|
||||
r = service_spawn(s,
|
||||
s->main_command,
|
||||
s->timeout_start_usec,
|
||||
EXEC_PASS_FDS|EXEC_APPLY_SANDBOXING|EXEC_APPLY_CHROOT|EXEC_APPLY_TTY_STDIN|EXEC_SET_WATCHDOG,
|
||||
EXEC_PASS_FDS|EXEC_APPLY_SANDBOXING|EXEC_APPLY_CHROOT|EXEC_APPLY_TTY_STDIN|EXEC_SET_WATCHDOG|EXEC_SETENV_MONITOR_RESULT,
|
||||
&pid);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
@ -169,8 +169,13 @@ cat >/run/systemd/system/testservice-failure-exit-handler-68.service <<EOF
|
||||
Description=TEST-68-PROPAGATE-EXIT-STATUS handle service exiting in failure
|
||||
|
||||
[Service]
|
||||
# repeat the check to make sure that values are set correctly on repeated invocations
|
||||
Type=oneshot
|
||||
ExecStartPre=/tmp/check_on_failure.sh
|
||||
ExecStartPre=/tmp/check_on_failure.sh
|
||||
ExecStart=/tmp/check_on_failure.sh
|
||||
ExecStart=/tmp/check_on_failure.sh
|
||||
ExecStartPost=test -z '$MONITOR_SERVICE_RESULT'
|
||||
EOF
|
||||
|
||||
# Template version.
|
||||
@ -179,9 +184,13 @@ cat >/run/systemd/system/testservice-failure-exit-handler-68-template@.service <
|
||||
Description=TEST-68-PROPAGATE-EXIT-STATUS handle service exiting in failure (template)
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStartPre=echo "triggered by %i"
|
||||
ExecStartPre=/tmp/check_on_failure.sh
|
||||
ExecStartPre=/tmp/check_on_failure.sh
|
||||
ExecStart=/tmp/check_on_failure.sh
|
||||
ExecStart=/tmp/check_on_failure.sh
|
||||
ExecStartPost=test -z '$MONITOR_SERVICE_RESULT'
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
|
Loading…
Reference in New Issue
Block a user