From d72a9e931dc589dd5f421a12177b3ac46f8fb0be Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Fri, 6 Apr 2012 21:20:34 +0200 Subject: [PATCH] quick, dirty but effective way to get systemd to run pl_sysinit as a pre_script of pl_boot --- prep.sh | 30 +++++++++++++++++------------- systemd/pl_boot.service | 1 + 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/prep.sh b/prep.sh index e9a9869..38f2a0b 100755 --- a/prep.sh +++ b/prep.sh @@ -64,18 +64,6 @@ for file in pl_functions pl_sysinit pl_hwinit pl_netinit pl_validateconf pl_boot install -D -m 755 initscripts/$file $bootcd/etc/init.d/$file done -# Install systemd files -echo "* Installing systemd files" -for file in pl_boot.service pl_boot.target pl_sysinit.service pl_sysinit.target; do - install -D -m 644 systemd/$file $bootcd/lib/systemd/system -done -ln -sf /lib/systemd/system/pl_boot.target $bootcd/etc/systemd/system/default.target -mkdir -p $bootcd/lib/systemd/system/pl_boot.target.wants -mkdir -p $bootcd/lib/systemd/system/pl_sysinit.target.wants -ln -sf /lib/systemd/system/pl_boot.service $bootcd/lib/systemd/system/pl_boot.target.wants/pl_boot.service -ln -sf /lib/systemd/system/pl_sysinit.service $bootcd/lib/systemd/system/pl_sysinit.target.wants/pl_sysinit.service - - # Install configuration files echo "* Installing configuration files" for file in fstab mtab modprobe.conf inittab hosts sysctl.conf ; do @@ -92,8 +80,9 @@ if [ -d $bootcd/etc/event.d ] ; then # use our startup script in runlevel 2 sed -i -e 's,/etc/rc\.d/rc[ \t][ \t]*2,/etc/init.d/pl_boot,g' rc2 popd -elif [ -d $bootcd/etc/init ] ; then +fi # ditto for f14 and higher init style +if [ -d $bootcd/etc/init ] ; then echo "* Tuning /etc/init/ for upstart" pushd $bootcd/etc/init # use our system initialisation script @@ -102,6 +91,21 @@ elif [ -d $bootcd/etc/init ] ; then sed -i -e 's,/etc/rc.d/rc[a-z\.]*,/etc/init.d/pl_boot,g' rc.conf popd fi +# Install systemd files for f16 and above +# NOTE: pl_sysinit is actually invoked in the pl_boot service file +# ExecStartPre=/etc/init.d/pl_sysinit +# this is auick and dirty but does the job +if [ -d $bootcd/etc/systemd/system ] ; then + echo "* Installing systemd files" + for file in pl_boot.service pl_boot.target pl_sysinit.service pl_sysinit.target; do + install -D -m 644 systemd/$file $bootcd/lib/systemd/system + done + ln -sf /lib/systemd/system/pl_boot.target $bootcd/etc/systemd/system/default.target + mkdir -p $bootcd/lib/systemd/system/pl_boot.target.wants + mkdir -p $bootcd/lib/systemd/system/pl_sysinit.target.wants + ln -sf /lib/systemd/system/pl_boot.service $bootcd/lib/systemd/system/pl_boot.target.wants/pl_boot.service + ln -sf /lib/systemd/system/pl_sysinit.service $bootcd/lib/systemd/system/pl_sysinit.target.wants/pl_sysinit.service +fi # Install fallback node configuration file echo "* Installing fallback node configuration file" diff --git a/systemd/pl_boot.service b/systemd/pl_boot.service index 4010cfd..c8a583b 100644 --- a/systemd/pl_boot.service +++ b/systemd/pl_boot.service @@ -3,6 +3,7 @@ Description=pl_boot service After=pl_sysinit.target [Service] +ExecStartPre=/etc/init.d/pl_sysinit ExecStart=/etc/init.d/pl_boot [Install] -- 2.43.0