File: runit-run.postinst

package info (click to toggle)
runit 2.2.0-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,568 kB
  • sloc: ansic: 6,071; sh: 3,419; makefile: 399
file content (53 lines) | stat: -rw-r--r-- 1,290 bytes parent folder | download | duplicates (2)
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
48
49
50
51
52
53
#!/bin/sh
set -e

#keep until trixie+1: remove /etc/runit/2 from inittab so that it's replaced
# by /etc/runit/runsvdir-start
if [ "$1" = configure ] && dpkg --compare-versions "$2" le-nl 2.1.2-59; then
  if [ -f /etc/inittab ]; then
    awk '
    /^#runit-sysv maintscript -- BEGIN/ { flag = 1 }
                                        { if (flag == 0) print; }
    /^#runit-sysv maintscript -- END/   { flag = 0 }
    ' /etc/inittab > /etc/inittab.tmp
    sed -i '${/^$/d}' /etc/inittab.tmp
    mv /etc/inittab.tmp /etc/inittab
  fi
fi
#end keep

rescan_inittab () {
	# other inits maintain a compat initctl pipe, so we check that is not
	# systemd, that initctl exists and that sysvinit-core is installed
	if [ ! -d /run/systemd/system ] && [ -e /run/initctl ] ; then
		if [ -e /sbin/telinit ] ; then
			# rescan inittab to pick new entry
			telinit q
		fi
	fi
}

write_inittab () {
	if ! grep -q '^#runit-sysv maintscript -- BEGIN' /etc/inittab ; then
		cat /etc/inittab - <<EOF > /etc/inittab.tmp

#runit-sysv maintscript -- BEGIN
SV:123456:respawn:/etc/runit/runsvdir-start
#runit-sysv maintscript -- END
EOF
		mv /etc/inittab.tmp /etc/inittab
		rescan_inittab
	fi
}

if [ -f /etc/inittab ]; then
	write_inittab
fi

case "$1" in
    triggered)
	write_inittab
    ;;
esac

#DEBHELPER#