2 # SPDX-License-Identifier: LGPL-2.1-or-later
6 if ! env
--block-signal=SIGUSR1 true
2> /dev
/null
; then
7 echo "env tool too old, can't block signals, skipping test." >&2
12 systemd-analyze log-level debug
14 UNIT
="test-sigqueue-$RANDOM.service"
16 systemd-run
-u "$UNIT" -p Type
=notify
-p DynamicUser
=1 -- env
--block-signal=SIGRTMIN
+7 systemd-notify
--exec --ready \
; sleep infinity
18 systemctl
kill --kill-whom=main
--kill-value=4 --signal=SIGRTMIN
+7 "$UNIT"
19 systemctl
kill --kill-whom=main
--kill-value=4 --signal=SIGRTMIN
+7 "$UNIT"
20 systemctl
kill --kill-whom=main
--kill-value=7 --signal=SIGRTMIN
+7 "$UNIT"
21 systemctl
kill --kill-whom=main
--kill-value=16 --signal=SIGRTMIN
+7 "$UNIT"
22 systemctl
kill --kill-whom=main
--kill-value=32 --signal=SIGRTMIN
+7 "$UNIT"
23 systemctl
kill --kill-whom=main
--kill-value=16 --signal=SIGRTMIN
+7 "$UNIT"
25 # We simply check that six signals are queued now. There's no easy way to check
26 # from shell which ones those are, hence we don't check that.
27 P
=$
(systemctl show
-P MainPID
"$UNIT")
29 test "$(grep SigQ: /proc/"$P"/status | cut -d: -f2 | cut -d/ -f1)" -eq 6
33 systemd-analyze log-level info