diff options
author | Juan RP <xtraeme@gmail.com> | 2014-12-02 21:03:58 +0100 |
---|---|---|
committer | Juan RP <xtraeme@gmail.com> | 2014-12-02 21:03:58 +0100 |
commit | ca99f9f5bb66a4e160ac3404253d5fb7a79559eb (patch) | |
tree | c0b5a9b9ba2cb3634acb6ef93849e06b9d59371c /dracut | |
parent | 6847c606fb8a027c7f93c69846f27d5146904b5c (diff) | |
download | hrmpf-ca99f9f5bb66a4e160ac3404253d5fb7a79559eb.tar.gz hrmpf-ca99f9f5bb66a4e160ac3404253d5fb7a79559eb.tar.xz hrmpf-ca99f9f5bb66a4e160ac3404253d5fb7a79559eb.zip |
New dracut module helper to enable runit services.
Diffstat (limited to 'dracut')
-rw-r--r-- | dracut/module-setup.sh | 1 | ||||
-rw-r--r-- | dracut/services.sh | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh index a44efd2..765f41f 100644 --- a/dracut/module-setup.sh +++ b/dracut/module-setup.sh @@ -18,4 +18,5 @@ install() { inst_hook pre-pivot 02 "$moddir/display-manager-autologin.sh" inst_hook pre-pivot 03 "$moddir/copy-initramfs.sh" inst_hook pre-pivot 04 "$moddir/locale.sh" + inst_hook pre-pivot 05 "$moddir/services.sh" } diff --git a/dracut/services.sh b/dracut/services.sh new file mode 100644 index 0000000..c26ba19 --- /dev/null +++ b/dracut/services.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh + +SERVICEDIR=$NEWROOT/etc/sv/ +SERVICES="$(getarg live.services)" + +for f in ${SERVICES}; do + ln -s /etc/sv/$f $NEWROOT/etc/runit/runsvdir/default/ +done + +dhcpcd=1 +for f in connmand NetworkManager wicd; do + if [ -e $SERVICEDIR/$f ]; then + unset dhcpcd + fi +done + +# Enable all services by default... with some exceptions. +for f in $SERVICEDIR/*; do + _service=${f##*/} + case "${_service}" in + agetty-console|sulogin|dhcpcd-*) ;; # ignored + dhcpcd) [ -n "$dhcpcd" ] && ln -sf ${f##$NEWROOT} $NEWROOT/etc/runit/runsvdir/default/;; + *) ln -sf ${f##$NEWROOT} $NEWROOT/etc/runit/runsvdir/default/;; + esac +done |