Merge pull request #27584 from rphibel/add-restartquick-option

service: add new RestartMode option
This commit is contained in:
Luca Boccassi
2023-07-06 20:37:31 +01:00
committed by GitHub
23 changed files with 133 additions and 5 deletions
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
Description=Fail on restart
StartLimitIntervalSec=1m
StartLimitBurst=3
[Service]
Type=oneshot
ExecStart=false
Restart=on-failure
RestartMode=direct
@@ -0,0 +1,3 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
Requires=fails-on-restart-restartdirect.service
@@ -0,0 +1,11 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
Description=Fail on restart
StartLimitIntervalSec=1m
StartLimitBurst=3
[Service]
Type=oneshot
ExecStart=false
Restart=on-failure
RestartMode=normal
+3
View File
@@ -0,0 +1,3 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
Requires=fails-on-restart.service
@@ -0,0 +1,6 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/tests/testdata/testsuite-03.units/succeeds-on-restart.sh
Restart=on-failure
RestartMode=direct
@@ -0,0 +1,3 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
Requires=succeeds-on-restart-restartdirect.service
+6
View File
@@ -0,0 +1,6 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/tests/testdata/testsuite-03.units/succeeds-on-restart.sh
Restart=on-failure
RestartMode=normal
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
if [[ ! -f "/succeeds-on-restart.ko" ]]
then
touch "/succeeds-on-restart.ko"
exit 1
else
rm "/succeeds-on-restart.ko"
exit 0
fi
+3
View File
@@ -0,0 +1,3 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
[Unit]
Requires=succeeds-on-restart.service
+13
View File
@@ -153,4 +153,17 @@ systemctl restart propagatestopto-indirect.target
assert_rc 3 systemctl --quiet is-active propagatestopto-and-pullin.target
assert_rc 3 systemctl --quiet is-active sleep-infinity-simple.service
# Test restart mode direct
systemctl start succeeds-on-restart-restartdirect.target
assert_rc 0 systemctl --quiet is-active succeeds-on-restart-restartdirect.target
systemctl start fails-on-restart-restartdirect.target || :
assert_rc 3 systemctl --quiet is-active fails-on-restart-restartdirect.target
systemctl start succeeds-on-restart.target || :
assert_rc 3 systemctl --quiet is-active succeeds-on-restart.target
systemctl start fails-on-restart.target || :
assert_rc 3 systemctl --quiet is-active fails-on-restart.target
touch /testok