File: systemd-sysv-install

package info (click to toggle)
systemd 232-25+deb9u11
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 46,164 kB
  • sloc: ansic: 290,592; xml: 49,217; makefile: 5,503; sh: 4,031; python: 2,596; perl: 1,838
file content (49 lines) | stat: -rwxr-xr-x 1,324 bytes parent folder | download | duplicates (3)
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
#!/bin/sh
# This script is called by "systemctl enable/disable" when the given unit is a
# SysV init.d script. It needs to call the distribution's mechanism for
# enabling/disabling those, such as chkconfig, update-rc.d, or similar. This
# can optionally take a --root argument for enabling a SysV init script
# in a chroot or similar.
set -e

usage() {
    echo "Usage: $0 [--root=path] enable|disable|is-enabled <sysv script name>" >&2
    exit 1
}

# parse options
eval set -- "$(getopt -o r: --long root: -- "$@")"
while true; do
    case "$1" in
        -r|--root)
            ROOT="$2"
            shift 2 ;;
        --) shift ; break ;;
        *) usage ;;
    esac
done

if [ -n "$ROOT" ] && [ "$ROOT" != "/" ]; then
    CHROOT="chroot '$ROOT'"
fi

NAME="$2"
[ -n "$NAME" ] || usage

case "$1" in
    enable)
        # call the command to enable SysV init script $NAME here..
        $CHROOT /usr/sbin/update-rc.d "$NAME" defaults
        $CHROOT /usr/sbin/update-rc.d "$NAME" enable
        ;;
    disable)
        $CHROOT /usr/sbin/update-rc.d "$NAME" defaults
        $CHROOT /usr/sbin/update-rc.d "$NAME" disable
        ;;
    is-enabled)
        # exit with 0 if $NAME is enabled, non-zero if it is disabled
        ls $ROOT/etc/rc[S5].d/S??$NAME >/dev/null 2>/dev/null
        ;;
    *)
        usage ;;
esac