Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37547850
en ru br
Репозитории ALT

Группа :: Система/Настройка/Загрузка и инициализация
Пакет: sysvinit

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: 0010-ALT-halt-poweroff.patch
Скачать


From 6b037ca6cd0e6543028cd1bf6318838fd4d33cad Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <legion@altlinux.org>
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
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin