From 6b037ca6cd0e6543028cd1bf6318838fd4d33cad Mon Sep 17 00:00:00 2001 From: Alexey Gladkov Date: Thu, 16 Dec 2021 22:33:36 +0300 Subject: ALT: halt poweroff --- src/halt.c | 10 +++++++--- src/shutdown.c | 5 ++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/halt.c b/src/halt.c index c633033..6e5f485 100644 --- a/src/halt.c +++ b/src/halt.c @@ -157,13 +157,15 @@ int get_runlevel(void) /* * Switch to another runlevel. */ -void do_shutdown(char *fl, int should_poweroff, char *tm) +void do_shutdown(char *fl, int should_poweroff, char *tm, char *pw) { - char *args[9]; + char *args[10]; int i = 0; args[i++] = "shutdown"; args[i++] = fl; + if (pw) + args[i++] = pw; if ( (! strcmp(fl, "-h") ) && (should_poweroff) ) args[i++] = "-P"; if (tm) { @@ -231,6 +233,7 @@ int main(int argc, char **argv) do_hddown = 1; break; case 'p': + if (do_reboot) usage(); do_poweroff = 1; break; case 't': @@ -258,7 +261,8 @@ int main(int argc, char **argv) */ c = get_runlevel(); if (c != '0' && c != '6') - do_shutdown(do_reboot ? "-r" : "-h", do_poweroff, tm); + do_shutdown(do_reboot ? "-r" : "-h", do_poweroff, tm, + do_poweroff ? "-P" : (do_reboot ? NULL : "-H")); } /* diff --git a/src/shutdown.c b/src/shutdown.c index 11f6dcd..06fdbc7 100644 --- a/src/shutdown.c +++ b/src/shutdown.c @@ -435,7 +435,10 @@ void issue_shutdown(char *halttype) } openlog("shutdown", LOG_PID, LOG_USER); if (do_halt) - syslog(LOG_NOTICE, "shutting down for system halt"); + if (halttype) + syslog(LOG_NOTICE, "shutting down for system halt (%s)", halttype); + else + syslog(LOG_NOTICE, "shutting down for system halt"); else syslog(LOG_NOTICE, "shutting down for system reboot"); closelog(); -- 2.25.4