Look for either "init" or "linuxrc" processes
diff --git a/init/poweroff.c b/init/poweroff.c
index 8bb20e9..eba5134 100644
--- a/init/poweroff.c
+++ b/init/poweroff.c
@@ -29,8 +29,11 @@
#ifdef BB_FEATURE_LINUXRC
/* don't assume init's pid == 1 */
pid_t *pid = find_pid_by_name("init");
- if (!pid || *pid<=0)
- error_msg_and_die("no process killed");
+ if (!pid || *pid<=0) {
+ pid_t *pid = find_pid_by_name("linuxrc");
+ if (!pid || *pid<=0)
+ error_msg_and_die("no process killed");
+ }
return(kill(*pid, SIGUSR2));
#else
return(kill(1, SIGUSR2));