diff options
-rw-r--r-- | halt.c | 3 | ||||
-rw-r--r-- | init/halt.c | 3 | ||||
-rw-r--r-- | init/reboot.c | 4 | ||||
-rw-r--r-- | reboot.c | 4 | ||||
-rw-r--r-- | utility.c | 9 |
5 files changed, 15 insertions, 8 deletions
@@ -26,6 +26,7 @@ | |||
26 | extern int | 26 | extern int |
27 | halt_main(int argc, char ** argv) | 27 | halt_main(int argc, char ** argv) |
28 | { | 28 | { |
29 | exit( kill(1, SIGUSR1)); | 29 | /* don't assume init's pid == 1 */ |
30 | exit( kill(findInitPid(), SIGUSR1)); | ||
30 | } | 31 | } |
31 | 32 | ||
diff --git a/init/halt.c b/init/halt.c index ecc6e8f30..23eb23c30 100644 --- a/init/halt.c +++ b/init/halt.c | |||
@@ -26,6 +26,7 @@ | |||
26 | extern int | 26 | extern int |
27 | halt_main(int argc, char ** argv) | 27 | halt_main(int argc, char ** argv) |
28 | { | 28 | { |
29 | exit( kill(1, SIGUSR1)); | 29 | /* don't assume init's pid == 1 */ |
30 | exit( kill(findInitPid(), SIGUSR1)); | ||
30 | } | 31 | } |
31 | 32 | ||
diff --git a/init/reboot.c b/init/reboot.c index 17ec9f82f..ff2c6ad18 100644 --- a/init/reboot.c +++ b/init/reboot.c | |||
@@ -26,6 +26,6 @@ | |||
26 | extern int | 26 | extern int |
27 | reboot_main(int argc, char ** argv) | 27 | reboot_main(int argc, char ** argv) |
28 | { | 28 | { |
29 | /* don't assume init's pid == 1 */ | 29 | /* don't assume init's pid == 1 */ |
30 | exit( kill(findInitPid(), SIGUSR2)); | 30 | exit( kill(findInitPid(), SIGUSR2)); |
31 | } | 31 | } |
@@ -26,6 +26,6 @@ | |||
26 | extern int | 26 | extern int |
27 | reboot_main(int argc, char ** argv) | 27 | reboot_main(int argc, char ** argv) |
28 | { | 28 | { |
29 | /* don't assume init's pid == 1 */ | 29 | /* don't assume init's pid == 1 */ |
30 | exit( kill(findInitPid(), SIGUSR2)); | 30 | exit( kill(findInitPid(), SIGUSR2)); |
31 | } | 31 | } |
@@ -1068,7 +1068,12 @@ extern long getNum (const char *cp) | |||
1068 | } | 1068 | } |
1069 | #endif | 1069 | #endif |
1070 | 1070 | ||
1071 | #if 1 | 1071 | |
1072 | #if defined BB_INIT || defined BB_HALT || defined BB_REBOOT | ||
1073 | |||
1074 | #if ! defined BB_FEATURE_USE_PROCFS | ||
1075 | #error Sorry, I depend on the /proc filesystem right now. | ||
1076 | #endif | ||
1072 | /* findInitPid() | 1077 | /* findInitPid() |
1073 | * | 1078 | * |
1074 | * This finds the pid of init (which is not always 1). | 1079 | * This finds the pid of init (which is not always 1). |
@@ -1095,7 +1100,7 @@ findInitPid() | |||
1095 | fgets(buffer, 256, status); | 1100 | fgets(buffer, 256, status); |
1096 | fclose(status); | 1101 | fclose(status); |
1097 | 1102 | ||
1098 | if ( (strcmp(&buffer[6], "init\n") == 0)) { | 1103 | if ( (strstr(buffer, "init\n") != NULL )) { |
1099 | return init_pid; | 1104 | return init_pid; |
1100 | } | 1105 | } |
1101 | } | 1106 | } |