diff options
-rw-r--r-- | man/systemctl.xml | 14 | ||||
-rw-r--r-- | src/login/logind-dbus.c | 2 | ||||
-rw-r--r-- | src/systemctl/systemctl.c | 23 |
3 files changed, 25 insertions, 14 deletions
diff --git a/man/systemctl.xml b/man/systemctl.xml index 0ceb26d59b..39229a0075 100644 --- a/man/systemctl.xml +++ b/man/systemctl.xml @@ -1006,8 +1006,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. <term><command>halt</command></term> <listitem> - <para>Shut down and halt the system. This is mostly - equivalent to <command>start halt.target</command> but also + <para>Shut down and halt the system. This is mostly equivalent to + <command>start halt.target --irreversible</command> but also prints a wall message to all users. If combined with <option>--force</option> shutdown of all running services is skipped, however all processes are killed and all file @@ -1023,8 +1023,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. <listitem> <para>Shut down and power-off the system. This is mostly - equivalent to <command>start poweroff.target</command> but - also prints a wall message to all users. If combined with + equivalent to <command>start poweroff.target --irreversible</command> + but also prints a wall message to all users. If combined with <option>--force</option> shutdown of all running services is skipped, however all processes are killed and all file systems are unmounted or mounted read-only, immediately @@ -1039,8 +1039,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. <listitem> <para>Shut down and reboot the system. This is mostly - equivalent to <command>start reboot.target</command> but - also prints a wall message to all users. If combined with + equivalent to <command>start reboot.target --irreversible</command> + but also prints a wall message to all users. If combined with <option>--force</option> shutdown of all running services is skipped, however all processes are killed and all file systems are unmounted or mounted read-only, immediately @@ -1055,7 +1055,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. <listitem> <para>Shut down and reboot the system via kexec. This is - mostly equivalent to <command>start kexec.target</command> + mostly equivalent to <command>start kexec.target --irreversible</command> but also prints a wall message to all users. If combined with <option>--force</option> shutdown of all running services is skipped, however all processes are killed and diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index d235474a23..818f2fa808 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -1051,7 +1051,7 @@ static int execute_shutdown_or_sleep( DBusError *error) { _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; - const char *mode = "replace", *p; + const char *mode = "replace-irreversibly", *p; int r; char *c; diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 723be76cdb..3d59a8bb1d 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -1595,11 +1595,22 @@ static int start_unit(DBusConnection *bus, char **args) { streq(args[0], "force-reload") ? "ReloadOrTryRestartUnit" : "StartUnit"; - mode = - (streq(args[0], "isolate") || - streq(args[0], "rescue") || - streq(args[0], "emergency") || - streq(args[0], "default")) ? "isolate" : arg_job_mode; + if (streq(args[0], "isolate") || + streq(args[0], "rescue") || + streq(args[0], "emergency") || + streq(args[0], "default")) + mode = "isolate"; + else if (streq(args[0], "halt") || + streq(args[0], "poweroff") || + streq(args[0], "reboot") || + streq(args[0], "kexec") || + streq(args[0], "exit") || + streq(args[0], "suspend") || + streq(args[0], "hibernate") || + streq(args[0], "hybrid-sleep")) + mode = "replace-irreversibly"; + else + mode = arg_job_mode; one_name = table[verb_to_action(args[0])]; @@ -1614,7 +1625,7 @@ static int start_unit(DBusConnection *bus, char **args) { arg_action == ACTION_RUNLEVEL2 || arg_action == ACTION_RUNLEVEL3 || arg_action == ACTION_RUNLEVEL4 || - arg_action == ACTION_RUNLEVEL5) ? "isolate" : "replace"; + arg_action == ACTION_RUNLEVEL5) ? "isolate" : "replace-irreversibly"; one_name = table[arg_action]; } |