diff options
Diffstat (limited to 'test/units/testsuite-23.sh')
-rwxr-xr-x | test/units/testsuite-23.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/units/testsuite-23.sh b/test/units/testsuite-23.sh new file mode 100755 index 0000000..5e2966f --- /dev/null +++ b/test/units/testsuite-23.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -ex +set -o pipefail + +systemd-analyze log-level debug +systemd-analyze log-target console + +# Create a binary for which execve() will fail +touch /tmp/brokenbinary +chmod +x /tmp/brokenbinary + +# These three commands should succeed. +systemd-run --unit=one -p Type=simple /bin/sleep infinity +systemd-run --unit=two -p Type=simple -p User=idontexist /bin/sleep infinity +systemd-run --unit=three -p Type=simple /tmp/brokenbinary + +# And now, do the same with Type=exec, where the latter two should fail +systemd-run --unit=four -p Type=exec /bin/sleep infinity +! systemd-run --unit=five -p Type=exec -p User=idontexist /bin/sleep infinity +! systemd-run --unit=six -p Type=exec /tmp/brokenbinary + +systemd-run --unit=seven -p KillSignal=SIGTERM -p RestartKillSignal=SIGINT -p Type=exec /bin/sleep infinity +# Both TERM and SIGINT happen to have the same number on all architectures +test $(systemctl show --value -p KillSignal seven.service) -eq 15 +test $(systemctl show --value -p RestartKillSignal seven.service) -eq 2 + +systemctl restart seven.service +systemctl stop seven.service + +systemd-analyze log-level info + +echo OK > /testok + +exit 0 |