diff options
Diffstat (limited to 'init/init_shared.c')
-rw-r--r-- | init/init_shared.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/init/init_shared.c b/init/init_shared.c new file mode 100644 index 000000000..842942fe3 --- /dev/null +++ b/init/init_shared.c | |||
@@ -0,0 +1,21 @@ | |||
1 | #include <signal.h> | ||
2 | #include "busybox.h" | ||
3 | |||
4 | #include "init_shared.h" | ||
5 | |||
6 | |||
7 | extern int kill_init(int sig) | ||
8 | { | ||
9 | #ifdef CONFIG_FEATURE_INITRD | ||
10 | /* don't assume init's pid == 1 */ | ||
11 | long *pid = find_pid_by_name("init"); | ||
12 | if (!pid || *pid<=0) { | ||
13 | pid = find_pid_by_name("linuxrc"); | ||
14 | if (!pid || *pid<=0) | ||
15 | bb_error_msg_and_die("no process killed"); | ||
16 | } | ||
17 | return(kill(*pid, sig)); | ||
18 | #else | ||
19 | return(kill(1, sig)); | ||
20 | #endif | ||
21 | } | ||