diff options
Diffstat (limited to 'community-testing/systemd/systemd.install')
-rw-r--r-- | community-testing/systemd/systemd.install | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/community-testing/systemd/systemd.install b/community-testing/systemd/systemd.install new file mode 100644 index 000000000..259d09b9e --- /dev/null +++ b/community-testing/systemd/systemd.install @@ -0,0 +1,50 @@ +#!/bin/sh + +checkgroups() { + getent group lock >/dev/null || groupadd -g 54 lock + + utmpent=$(getent group utmp) + if [ -z $utmpent ]; then + getent group utmp >/dev/null || groupadd -g 32 utmp + elif [ $(echo $utmpent | cut -d: -f3) = '22' ]; then + groupmod -g 32 utmp + fi +} + +post_install() { + checkgroups + + [ -f /etc/machine-id ] || /bin/systemd-machine-id-setup + + # Try to read default runlevel from the old inittab if it exists + runlevel=$(/bin/awk -F':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) + if [ -z "$runlevel" ]; then + target="/lib/systemd/system/graphical.target" + else + target="/lib/systemd/system/runlevel$runlevel.target" + fi + + # And symlink what we found to the new-style default.target + /bin/ln -sf "$target" /etc/systemd/system/default.target + + echo "systemd has been installed to /bin/systemd. Please ensure you append" + echo "init=/bin/systemd to your kernel command line in your bootloader." +} + +post_upgrade() { + checkgroups + + [ -f /etc/machine-id ] || /bin/systemd-machine-id-setup + /bin/systemctl daemon-reexec >/dev/null || : +} + +pre_remove() { + /bin/rm -f /etc/systemd/system/default.target +} + +post_remove() { + getent group lock >/dev/null && groupdel lock + getent group utmp >/dev/null && groupdel utmp +} + +# vim:set ts=2 sw=2 et: |