#!/usr/bin/env bash set -x set -e set -o pipefail U=/run/systemd/system/test12.socket cat <<'EOF' >$U [Unit] Description=Test 12 socket [Socket] Accept=yes ListenStream=/run/test12.socket SocketGroup=adm SocketMode=0660 EOF cat <<'EOF' > /run/systemd/system/test12@.service [Unit] Description=Test service [Service] StandardInput=socket ExecStart=/bin/sh -x -c cat EOF systemctl start test12.socket systemctl is-active test12.socket [[ "$(stat --format='%G' /run/test12.socket)" == adm ]] echo A | nc -w1 -U /run/test12.socket mv $U ${U}.disabled systemctl daemon-reload systemctl is-active test12.socket [[ "$(stat --format='%G' /run/test12.socket)" == adm ]] echo B | nc -w1 -U /run/test12.socket && exit 1 mv ${U}.disabled $U systemctl daemon-reload systemctl is-active test12.socket echo C | nc -w1 -U /run/test12.socket && exit 1 [[ "$(stat --format='%G' /run/test12.socket)" == adm ]] systemctl restart test12.socket systemctl is-active test12.socket echo D | nc -w1 -U /run/test12.socket [[ "$(stat --format='%G' /run/test12.socket)" == adm ]] touch /testok