shutdown: respect the dry run option '-k'
Don't do the actual power-off/reboot when '-k' is passed to shutdown. Related to: https://bugzilla.redhat.com/show_bug.cgi?id=624149
This commit is contained in:
parent
1a63987788
commit
52c002150a
|
@ -348,7 +348,7 @@ finish:
|
|||
if (unlink_nologin)
|
||||
unlink("/run/nologin");
|
||||
|
||||
if (exec_shutdown) {
|
||||
if (exec_shutdown && !c.dry_run) {
|
||||
char sw[3];
|
||||
|
||||
sw[0] = '-';
|
||||
|
|
|
@ -33,6 +33,7 @@ _packed_ struct shutdownd_command {
|
|||
char mode; /* H, P, r, i.e. the switches usually passed to
|
||||
* shutdown to select whether to halt, power-off or
|
||||
* reboot the machine */
|
||||
bool dry_run;
|
||||
bool warn_wall;
|
||||
|
||||
/* Yepp, sometimes we are lazy and use fixed-size strings like
|
||||
|
|
|
@ -5422,7 +5422,7 @@ static int systemctl_main(DBusConnection *bus, int argc, char *argv[], DBusError
|
|||
return verbs[i].dispatch(bus, argv + optind, left);
|
||||
}
|
||||
|
||||
static int send_shutdownd(usec_t t, char mode, bool warn, const char *message) {
|
||||
static int send_shutdownd(usec_t t, char mode, bool dry_run, bool warn, const char *message) {
|
||||
int fd = -1;
|
||||
struct msghdr msghdr;
|
||||
struct iovec iovec;
|
||||
|
@ -5432,6 +5432,7 @@ static int send_shutdownd(usec_t t, char mode, bool warn, const char *message) {
|
|||
zero(c);
|
||||
c.elapse = t;
|
||||
c.mode = mode;
|
||||
c.dry_run = dry_run;
|
||||
c.warn_wall = warn;
|
||||
|
||||
if (message)
|
||||
|
@ -5527,6 +5528,7 @@ static int halt_main(DBusConnection *bus) {
|
|||
arg_action == ACTION_HALT ? 'H' :
|
||||
arg_action == ACTION_POWEROFF ? 'P' :
|
||||
'r',
|
||||
arg_dry,
|
||||
!arg_no_wall,
|
||||
m);
|
||||
free(m);
|
||||
|
@ -5774,7 +5776,7 @@ int main(int argc, char*argv[]) {
|
|||
break;
|
||||
|
||||
case ACTION_CANCEL_SHUTDOWN:
|
||||
r = send_shutdownd(0, 0, false, NULL);
|
||||
r = send_shutdownd(0, 0, false, false, NULL);
|
||||
break;
|
||||
|
||||
case ACTION_INVALID:
|
||||
|
|
Loading…
Reference in a new issue