diff options
Diffstat (limited to 'init/halt.c')
-rw-r--r-- | init/halt.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/init/halt.c b/init/halt.c index 7e663227c..b9eeaebdd 100644 --- a/init/halt.c +++ b/init/halt.c | |||
@@ -23,19 +23,10 @@ | |||
23 | 23 | ||
24 | #include "busybox.h" | 24 | #include "busybox.h" |
25 | #include <signal.h> | 25 | #include <signal.h> |
26 | #include "init_shared.h" | ||
27 | |||
26 | 28 | ||
27 | extern int halt_main(int argc, char **argv) | 29 | extern int halt_main(int argc, char **argv) |
28 | { | 30 | { |
29 | #ifdef CONFIG_FEATURE_INITRD | 31 | return kill_init(SIGUSR1); |
30 | /* don't assume init's pid == 1 */ | ||
31 | long *pid = find_pid_by_name("init"); | ||
32 | if (!pid || *pid<=0) { | ||
33 | pid = find_pid_by_name("linuxrc"); | ||
34 | if (!pid || *pid<=0) | ||
35 | bb_error_msg_and_die("no process killed"); | ||
36 | } | ||
37 | return(kill(*pid, SIGUSR1)); | ||
38 | #else | ||
39 | return(kill(1, SIGUSR1)); | ||
40 | #endif | ||
41 | } | 32 | } |