From d07885cd1ebaf838c3eb36814c03f39180716ae3 Mon Sep 17 00:00:00 2001 From: Thomas Backlund Date: Fri, 4 May 2012 17:31:46 +0000 Subject: really fix shutdown/reboot message on livecds (coling) --- config/live.cfg | 1 + files/halt-local.service | 23 +++++++++++++++++++++++ files/halt.local.CD | 7 ------- 3 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 files/halt-local.service diff --git a/config/live.cfg b/config/live.cfg index c93fb24..da35792 100644 --- a/config/live.cfg +++ b/config/live.cfg @@ -44,6 +44,7 @@ my $_l = { [ 'files/defaultspooler', '/etc/foomatic/defaultspooler', { mode => 0644 } ], if_($live->{settings}{media} eq 'CD', #- eject eject cd medium before halt/reboot + [ 'files/halt-local.service', '/etc/systemd/system/halt-local.service', { mode => 0644 } ], [ 'files/halt.local.CD', '/sbin/halt.local', { mode => 0755 } ], #- do not load usblp and trigger autosetupprintqueues in live since cups is not available [ 'files/live.modprobe.CD', '/etc/modprobe.d/live.conf', { mode => 0644, no_install => 1 } ], diff --git a/files/halt-local.service b/files/halt-local.service new file mode 100644 index 0000000..bc7f284 --- /dev/null +++ b/files/halt-local.service @@ -0,0 +1,23 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +[Unit] +Description=/sbin/halt.local Compatibility +ConditionFileIsExecutable=/sbin/halt.local +DefaultDependencies=no +After=shutdown.target +Before=final.target + +[Service] +Type=oneshot +ExecStartPre=-/bin/kill -54 1 +ExecStartPre=-/usr/bin/plymouth quit +ExecStartPre=-/usr/bin/chvt 1 +ExecStart=/sbin/halt.local +TimeoutSec=0 +StandardOutput=tty +RemainAfterExit=yes diff --git a/files/halt.local.CD b/files/halt.local.CD index e34f56d..6254c61 100755 --- a/files/halt.local.CD +++ b/files/halt.local.CD @@ -8,13 +8,6 @@ use c; my ($device) = cat_("/proc/mounts") =~ m!(/dev/\S+)\s+/live/media\s+iso9660!; $device or exit; -# stop plymouth -system("/bin/plymouth quit"); -# send SIGRTMIN+20 to systemd to enable console output -system("/bin/kill -54 1"); -# switch to console 1 -system("/usr/bin/chvt 1"); - # try to put halt/reboot in cache, if not called directly from them # mount is also needed by end of /etc/init.d/halt system("$_ --help &>/dev/null") foreach qw(halt mount reboot); -- cgit v1.2.1