From 983d9c90151f4b85301bd8078afd560269e75961 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 11 Jul 2010 04:22:00 +0200 Subject: [PATCH] units: turn Wants=shutdown back into Requires=shutdown to avoid removal of jobs due to the impact minimizer --- src/systemctl.c | 20 ++++++++++++++------ units/arch/halt.service | 2 +- units/arch/poweroff.service | 2 +- units/arch/reboot.service | 2 +- units/emergency.service | 2 +- units/fedora/halt.service | 2 +- units/fedora/poweroff.service | 2 +- units/fedora/reboot.service | 2 +- units/gentoo/halt.service | 2 +- units/gentoo/poweroff.service | 2 +- units/gentoo/reboot.service | 2 +- units/session/exit.service.in | 2 +- units/suse/halt.service | 2 +- units/suse/poweroff.service | 2 +- units/suse/reboot.service | 2 +- 15 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/systemctl.c b/src/systemctl.c index d033a752..d1892e4a 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -794,12 +794,17 @@ finish: } static int start_special(DBusConnection *bus, char **args, unsigned n) { + int r; + assert(bus); assert(args); - warn_wall(verb_to_action(args[0])); + r = start_unit(bus, args, n); + + if (r >= 0) + warn_wall(verb_to_action(args[0])); - return start_unit(bus, args, n); + return r; } static int check_unit(DBusConnection *bus, char **args, unsigned n) { @@ -3292,26 +3297,29 @@ static int reload_with_fallback(DBusConnection *bus) { static int start_with_fallback(DBusConnection *bus) { int r; - warn_wall(arg_action); if (bus) { /* First, try systemd via D-Bus. */ if ((r = start_unit(bus, NULL, 0)) > 0) - return 0; + goto done; /* Hmm, talking to systemd via D-Bus didn't work. Then * let's try to talk to Upstart via D-Bus. */ if ((r = talk_upstart()) > 0) - return 0; + goto done; } /* Nothing else worked, so let's try * /dev/initctl */ if ((r = talk_initctl()) != 0) - return 0; + goto done; log_error("Failed to talk to init daemon."); return -EIO; + +done: + warn_wall(arg_action); + return 0; } static int halt_main(DBusConnection *bus) { diff --git a/units/arch/halt.service b/units/arch/halt.service index 190e4fee..87224e34 100644 --- a/units/arch/halt.service +++ b/units/arch/halt.service @@ -8,7 +8,7 @@ [Unit] Description=Halt DefaultDependencies=no -Wants=shutdown.target +Requires=shutdown.target After=shutdown.target Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/arch/poweroff.service b/units/arch/poweroff.service index 0b1ee89a..ffa592c8 100644 --- a/units/arch/poweroff.service +++ b/units/arch/poweroff.service @@ -8,7 +8,7 @@ [Unit] Description=Power-Off DefaultDependencies=no -Wants=shutdown.target +Requires=shutdown.target After=shutdown.target Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/arch/reboot.service b/units/arch/reboot.service index 274f4075..934903dc 100644 --- a/units/arch/reboot.service +++ b/units/arch/reboot.service @@ -8,7 +8,7 @@ [Unit] Description=Reboot DefaultDependencies=no -Wants=shutdown.target +Requires=shutdown.target After=shutdown.target Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/emergency.service b/units/emergency.service index 0014c263..bcedebfa 100644 --- a/units/emergency.service +++ b/units/emergency.service @@ -10,7 +10,7 @@ [Unit] Description=Emergency Shell DefaultDependencies=no -Wants=shutdown.target umount.target +Requires=shutdown.target umount.target After=shutdown.target umount.target [Service] diff --git a/units/fedora/halt.service b/units/fedora/halt.service index 0c0fa5fa..b957a3fe 100644 --- a/units/fedora/halt.service +++ b/units/fedora/halt.service @@ -8,7 +8,7 @@ [Unit] Description=Halt DefaultDependencies=no -Wants=shutdown.target killall.service +Requires=shutdown.target killall.service After=shutdown.target killall.service Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/fedora/poweroff.service b/units/fedora/poweroff.service index 913edc48..76d030c0 100644 --- a/units/fedora/poweroff.service +++ b/units/fedora/poweroff.service @@ -8,7 +8,7 @@ [Unit] Description=Power-Off DefaultDependencies=no -Wants=shutdown.target killall.service +Requires=shutdown.target killall.service After=shutdown.target killall.service Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/fedora/reboot.service b/units/fedora/reboot.service index c81b13ec..6a93c0b5 100644 --- a/units/fedora/reboot.service +++ b/units/fedora/reboot.service @@ -8,7 +8,7 @@ [Unit] Description=Reboot DefaultDependencies=no -Wants=shutdown.target killall.service +Requires=shutdown.target killall.service After=shutdown.target killall.service Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/gentoo/halt.service b/units/gentoo/halt.service index 28db813f..19ead8a3 100644 --- a/units/gentoo/halt.service +++ b/units/gentoo/halt.service @@ -8,7 +8,7 @@ [Unit] Description=Halt DefaultDependencies=no -Wants=shutdown.target killall.service +Requires=shutdown.target killall.service After=shutdown.target killall.service Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/gentoo/poweroff.service b/units/gentoo/poweroff.service index da6f48f7..9ceb205b 100644 --- a/units/gentoo/poweroff.service +++ b/units/gentoo/poweroff.service @@ -8,7 +8,7 @@ [Unit] Description=Power-Off DefaultDependencies=no -Wants=shutdown.target killall.service +Requires=shutdown.target killall.service After=shutdown.target killall.service Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/gentoo/reboot.service b/units/gentoo/reboot.service index a0f35753..c223e6c2 100644 --- a/units/gentoo/reboot.service +++ b/units/gentoo/reboot.service @@ -8,7 +8,7 @@ [Unit] Description=Reboot DefaultDependencies=no -Wants=shutdown.target killall.service +Requires=shutdown.target killall.service After=shutdown.target killall.service Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/session/exit.service.in b/units/session/exit.service.in index 3e5b5bff..1f515a75 100644 --- a/units/session/exit.service.in +++ b/units/session/exit.service.in @@ -1,7 +1,7 @@ [Unit] Description=Exit DefaultDependencies=no -Wants=shutdown.target +Requires=shutdown.target After=shutdown.target [Service] diff --git a/units/suse/halt.service b/units/suse/halt.service index 00bbfa93..5f42ac69 100644 --- a/units/suse/halt.service +++ b/units/suse/halt.service @@ -8,7 +8,7 @@ [Unit] Description=Halt DefaultDependencies=no -Wants=shutdown.target +Requires=shutdown.target After=shutdown.target Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/suse/poweroff.service b/units/suse/poweroff.service index e9aff275..93a9da50 100644 --- a/units/suse/poweroff.service +++ b/units/suse/poweroff.service @@ -8,7 +8,7 @@ [Unit] Description=Power-Off DefaultDependencies=no -Wants=shutdown.target +Requires=shutdown.target After=shutdown.target Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount diff --git a/units/suse/reboot.service b/units/suse/reboot.service index e9b76b61..c3526b30 100644 --- a/units/suse/reboot.service +++ b/units/suse/reboot.service @@ -8,7 +8,7 @@ [Unit] Description=Reboot DefaultDependencies=no -Wants=shutdown.target +Requires=shutdown.target After=shutdown.target Conflicts=dev-hugepages.automount dev-mqueue.automount proc-sys-fs-binfmt_misc.automount sys-kernel-debug.automount sys-kernel-security.automount -- 2.39.5