diff options
author | Denys Vlasenko | 2018-09-22 19:30:40 +0200 |
---|---|---|
committer | Denys Vlasenko | 2018-09-22 19:30:40 +0200 |
commit | 426aff88a0802b8da18292079f60f56388d0cdad (patch) | |
tree | b8db9ad15a0a79065ec297defd2273c30d2d0ca4 | |
parent | 1303962957fb900ed97c5958403990e885b06e29 (diff) | |
download | busybox-426aff88a0802b8da18292079f60f56388d0cdad.zip busybox-426aff88a0802b8da18292079f60f56388d0cdad.tar.gz |
init: hopefully fix "rebooting" in containers
function old new delta
pause_and_low_level_reboot 48 57 +9
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | init/init.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/init/init.c b/init/init.c index 6439e2b..fde35f6 100644 --- a/init/init.c +++ b/init/init.c @@ -752,8 +752,13 @@ static void pause_and_low_level_reboot(unsigned magic) reboot(magic); _exit(EXIT_SUCCESS); } - while (1) - sleep(1); + /* Used to have "while (1) sleep(1)" here. + * However, in containers reboot() call is ignored, and with that loop + * we would eternally sleep here - not what we want. + */ + waitpid(pid, NULL, 0); + sleep(1); /* paranoia */ + _exit(EXIT_SUCCESS); } static void run_shutdown_and_kill_processes(void) |