-#!/bin/bash
+#!/usr/bin/env bash
set -e
TEST_DESCRIPTION="Test that KillMode=mixed does not leave left over proccesses with ExecStopPost="
. $TEST_BASE_DIR/test-functions
-test_setup() {
- create_empty_image_rootdir
-
- (
- LOG_LEVEL=5
- eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
-
- setup_basic_environment
- mask_supporting_services
-
- # setup the testsuite service
- cat >$initdir/etc/systemd/system/testsuite.service <<EOF
-[Unit]
-Description=Testsuite service
-
-[Service]
-ExecStart=/testsuite.sh
-Type=oneshot
-EOF
- cat > $initdir/etc/systemd/system/issue_14566_test.service << EOF
-[Unit]
-Description=Issue 14566 Repro
-
-[Service]
-ExecStart=/repro.sh
-ExecStopPost=/bin/true
-KillMode=mixed
-EOF
-
- cp testsuite.sh $initdir/
- cp repro.sh $initdir/
-
- setup_testsuite
- )
- setup_nspawn_root
-}
-
-do_test "$@"
+do_test "$@" 47
--- /dev/null
+[Unit]
+Description=Issue 14566 Repro
+
+[Service]
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+ExecStopPost=/bin/true
+KillMode=mixed
-#!/bin/bash
+#!/usr/bin/env bash
sleep infinity &
echo $! > /leakedtestpid
--- /dev/null
+[Unit]
+Description=TEST-47-ISSUE-14566
+
+[Service]
+ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
+Type=oneshot
-#!/bin/bash
+#!/usr/bin/env bash
set -ex
set -o pipefail
systemd-analyze log-level debug
systemd-analyze log-target console
-systemctl start issue_14566_test
+systemctl start testsuite-47-repro
sleep 1
-systemctl status issue_14566_test
+systemctl status testsuite-47-repro
leaked_pid=$(cat /leakedtestpid)
-systemctl stop issue_14566_test
+systemctl stop testsuite-47-repro
# Leaked PID will still be around if we're buggy.
# I personally prefer to see 42.