diff options
| author | Eric Andersen <andersen@codepoet.org> | 2001-10-03 21:26:12 +0000 |
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2001-10-03 21:26:12 +0000 |
| commit | 371ca19f5346d626f0c75c8d53aa5e3fb2e85c43 (patch) | |
| tree | d5d5b8f9aec5eb15d45a43ea6a031dac4e05f39f /init | |
| parent | f0a4ac82166dbaedeae1d5f92821b700fc8fa17f (diff) | |
| download | busybox-w32-371ca19f5346d626f0c75c8d53aa5e3fb2e85c43.tar.gz busybox-w32-371ca19f5346d626f0c75c8d53aa5e3fb2e85c43.tar.bz2 busybox-w32-371ca19f5346d626f0c75c8d53aa5e3fb2e85c43.zip | |
Look for either "init" or "linuxrc" processes
Diffstat (limited to 'init')
| -rw-r--r-- | init/halt.c | 7 | ||||
| -rw-r--r-- | init/poweroff.c | 7 | ||||
| -rw-r--r-- | init/reboot.c | 7 |
3 files changed, 15 insertions, 6 deletions
diff --git a/init/halt.c b/init/halt.c index 10dcb4225..a6fec021b 100644 --- a/init/halt.c +++ b/init/halt.c | |||
| @@ -29,8 +29,11 @@ extern int halt_main(int argc, char **argv) | |||
| 29 | #ifdef BB_FEATURE_LINUXRC | 29 | #ifdef BB_FEATURE_LINUXRC |
| 30 | /* don't assume init's pid == 1 */ | 30 | /* don't assume init's pid == 1 */ |
| 31 | pid_t *pid = find_pid_by_name("init"); | 31 | pid_t *pid = find_pid_by_name("init"); |
| 32 | if (!pid || *pid<=0) | 32 | if (!pid || *pid<=0) { |
| 33 | error_msg_and_die("no process killed"); | 33 | pid_t *pid = find_pid_by_name("linuxrc"); |
| 34 | if (!pid || *pid<=0) | ||
| 35 | error_msg_and_die("no process killed"); | ||
| 36 | } | ||
| 34 | return(kill(*pid, SIGUSR1)); | 37 | return(kill(*pid, SIGUSR1)); |
| 35 | #else | 38 | #else |
| 36 | return(kill(1, SIGUSR1)); | 39 | return(kill(1, SIGUSR1)); |
diff --git a/init/poweroff.c b/init/poweroff.c index 8bb20e9bb..eba51342c 100644 --- a/init/poweroff.c +++ b/init/poweroff.c | |||
| @@ -29,8 +29,11 @@ extern int poweroff_main(int argc, char **argv) | |||
| 29 | #ifdef BB_FEATURE_LINUXRC | 29 | #ifdef BB_FEATURE_LINUXRC |
| 30 | /* don't assume init's pid == 1 */ | 30 | /* don't assume init's pid == 1 */ |
| 31 | pid_t *pid = find_pid_by_name("init"); | 31 | pid_t *pid = find_pid_by_name("init"); |
| 32 | if (!pid || *pid<=0) | 32 | if (!pid || *pid<=0) { |
| 33 | error_msg_and_die("no process killed"); | 33 | pid_t *pid = find_pid_by_name("linuxrc"); |
| 34 | if (!pid || *pid<=0) | ||
| 35 | error_msg_and_die("no process killed"); | ||
| 36 | } | ||
| 34 | return(kill(*pid, SIGUSR2)); | 37 | return(kill(*pid, SIGUSR2)); |
| 35 | #else | 38 | #else |
| 36 | return(kill(1, SIGUSR2)); | 39 | return(kill(1, SIGUSR2)); |
diff --git a/init/reboot.c b/init/reboot.c index 35c147b34..bdcd443eb 100644 --- a/init/reboot.c +++ b/init/reboot.c | |||
| @@ -29,8 +29,11 @@ extern int reboot_main(int argc, char **argv) | |||
| 29 | #ifdef BB_FEATURE_LINUXRC | 29 | #ifdef BB_FEATURE_LINUXRC |
| 30 | /* don't assume init's pid == 1 */ | 30 | /* don't assume init's pid == 1 */ |
| 31 | pid_t *pid = find_pid_by_name("init"); | 31 | pid_t *pid = find_pid_by_name("init"); |
| 32 | if (!pid || *pid<=0) | 32 | if (!pid || *pid<=0) { |
| 33 | error_msg_and_die("no process killed"); | 33 | pid_t *pid = find_pid_by_name("linuxrc"); |
| 34 | if (!pid || *pid<=0) | ||
| 35 | error_msg_and_die("no process killed"); | ||
| 36 | } | ||
| 34 | return(kill(*pid, SIGTERM)); | 37 | return(kill(*pid, SIGTERM)); |
| 35 | #else | 38 | #else |
| 36 | return(kill(1, SIGTERM)); | 39 | return(kill(1, SIGTERM)); |
