Systemd/src/systemctl/systemd-sysv-install.SKELETON
Martin Pitt 0f0467e63b systemctl: drop hardcoded chkconfig invocation
Introduce /usr/lib/systemd/systemd-sysv-install [--root=] <action> <name>
abstraction, replacing the direct calling of chkconfig. This allows
distributions to call their specific tools like update-rc.d without patching
systemd.

Ship systemd-sysv-install.SKELETON as an example for packagers how to implement
this.

Drop the --enable-chkconfig configure option.

Document this in README and point to it in NEWS.
2015-05-28 19:42:45 +02:00

48 lines
1.3 KiB
Bash
Executable file

#!/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
NAME="$2"
[ -n "$NAME" ] || usage
case "$1" in
enable)
# call the command to enable SysV init script $NAME here
# (consider optional $ROOT)
echo "IMPLEMENT ME: enabling SysV init.d script $NAME"
;;
disable)
# call the command to disable SysV init script $NAME here
# (consider optional $ROOT)
echo "IMPLEMENT ME: disabling SysV init.d script $NAME"
;;
is-enabled)
# exit with 0 if $NAME is enabled, non-zero if it is disabled
# (consider optional $ROOT)
echo "IMPLEMENT ME: checking SysV init.d script $NAME"
;;
*)
usage ;;
esac