diff options
author | Denis Vlasenko | 2007-03-24 12:11:17 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-03-24 12:11:17 +0000 |
commit | 9067f13be067f39f6c8586926b190b7dee0def3d (patch) | |
tree | ff0a10f5f81fa0e1e719691c147309a9cc9bef46 /miscutils | |
parent | 1b6fa4c57ced2ae89f51bdc073410c4be5384007 (diff) | |
download | busybox-9067f13be067f39f6c8586926b190b7dee0def3d.zip busybox-9067f13be067f39f6c8586926b190b7dee0def3d.tar.gz |
NOMMU re-exec trick shuld not depend on existence of "don't daemonize"
option for every affected applet (and dnsd, for example, don't have one).
Thus rework re-exec support to not require it. Code got smaller too.
Diffstat (limited to 'miscutils')
-rw-r--r-- | miscutils/crond.c | 4 | ||||
-rw-r--r-- | miscutils/watchdog.c | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/miscutils/crond.c b/miscutils/crond.c index d237a67..1ab0038 100644 --- a/miscutils/crond.c +++ b/miscutils/crond.c @@ -191,8 +191,8 @@ int crond_main(int ac, char **av) if (!(opt & 4)) { #ifdef BB_NOMMU - /* reexec for vfork() do continue parent */ - vfork_daemon_rexec(1, 0, ac, av, "-f"); + if (!re_execed) + vfork_daemon_rexec(1, 0, av); #else xdaemon(1, 0); #endif diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c index ed9026d..e3d77d1 100644 --- a/miscutils/watchdog.c +++ b/miscutils/watchdog.c @@ -38,12 +38,14 @@ int watchdog_main(int argc, char **argv) if (optind < argc - 1 || argc == 1) bb_show_usage(); + if (!(opts & OPT_FOREGROUND)) { #ifdef BB_NOMMU - if (!(opts & OPT_FOREGROUND)) - vfork_daemon_rexec(0, 1, argc, argv, "-F"); + if (!re_execed) + vfork_daemon_rexec(0, 1, argv); #else - xdaemon(0, 1); + xdaemon(0, 1); #endif + } signal(SIGHUP, watchdog_shutdown); signal(SIGINT, watchdog_shutdown); |