summaryrefslogtreecommitdiffstats
path: root/test/units/TEST-07-PID1.issue-1981.sh
blob: dcfa9b17b0d62c2be70f3ce58cc980d46f128583 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -eux
set -o pipefail

# Segmentation fault in timer_enter_waiting while masking a unit
# Issue: https://github.com/systemd/systemd/issues/1981

at_exit() {
    set +e

    systemctl stop my.timer my.service
    rm -f /run/systemd/system/my.{service,timer}
    systemctl daemon-reload
}

trap at_exit EXIT

mkdir -p /run/systemd/system

cat >/run/systemd/system/my.service <<\EOF
[Service]
Type=oneshot
ExecStartPre=sh -c 'test "$TRIGGER_UNIT" = my.timer'
ExecStartPre=sh -c 'test -n "$TRIGGER_TIMER_REALTIME_USEC"'
ExecStartPre=sh -c 'test -n "$TRIGGER_TIMER_MONOTONIC_USEC"'
ExecStart=echo Timer runs me
EOF

cat >/run/systemd/system/my.timer <<EOF
[Timer]
OnBootSec=10s
OnUnitInactiveSec=1h
EOF

systemctl unmask my.timer
systemctl start my.timer

mkdir -p /run/systemd/system/my.timer.d/
cat >/run/systemd/system/my.timer.d/override.conf <<EOF
[Timer]
OnBootSec=10s
OnUnitInactiveSec=1h
EOF

systemctl daemon-reload
systemctl mask my.timer