Files
systemd/test/units/TEST-74-AUX-UTILS.pty-forward.sh
T
Daan De Meyer b000e16798 ptyfwd: Forward various signals to forked process
We want systemd-pty-forward to be something that can be dropped in
somewhere without too much thought. To enable this, let's make sure
we forward various signals to the forked process. This makes sure that
any signals are delivered to the actual child process regardless of whether
it's running within systemd-pty-forward or not.
2025-02-13 10:21:00 +01:00

40 lines
736 B
Bash
Executable File

#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -eux
set -o pipefail
systemd-pty-forward --background 41 --title test echo foobar
# Test that signals are forwarded to the systemd-pty-forward child process.
cat >/tmp/child <<\EOF
#!/usr/bin/bash
set -x
trap 'touch /tmp/int' INT
# We need to wait for the sleep process asynchronously in order to allow
# bash to process signals
sleep infinity &
# notify that the process is ready
touch /tmp/ready
PID=$!
while :; do
wait || :
done
EOF
chmod +x /tmp/child
systemd-pty-forward /tmp/child &
PID=$!
timeout 5 bash -c "until test -e /tmp/ready; do sleep .5; done"
kill -INT "$PID"
timeout 5 bash -c "until test -e /tmp/int; do sleep .5; done"
kill "$PID"