diff options
author | Peter Wemm <peter@FreeBSD.org> | 2001-03-07 10:38:46 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2001-03-07 10:38:46 +0000 |
commit | 1db78faf47eb89556de40d4f4f83e05f224c0533 (patch) | |
tree | 0ac4c8ca6bf527e87faa9165cb075572d627d287 /usr.sbin/cron | |
parent | 06a9cc5bf7b52ffff4bc9af96d2edd081dc1aa42 (diff) | |
download | src-1db78faf47eb89556de40d4f4f83e05f224c0533.tar.gz src-1db78faf47eb89556de40d4f4f83e05f224c0533.zip |
Properly detach at startup. We could be passing revoked fd's to
child processes or starting children with no fd 0 (stdin) at all etc.
This is currently breaking on hub.freebsd.org.
Notes
Notes:
svn path=/head/; revision=73955
Diffstat (limited to 'usr.sbin/cron')
-rw-r--r-- | usr.sbin/cron/cron/cron.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/usr.sbin/cron/cron/cron.c b/usr.sbin/cron/cron/cron.c index e8f8557609d1..8889b722d83c 100644 --- a/usr.sbin/cron/cron/cron.c +++ b/usr.sbin/cron/cron/cron.c @@ -100,19 +100,9 @@ main(argc, argv) # endif (void) fprintf(stderr, "[%d] cron started\n", getpid()); } else { - switch (fork()) { - case -1: - log_it("CRON",getpid(),"DEATH","can't fork"); + if (daemon(1, 0) == -1) { + log_it("CRON",getpid(),"DEATH","can't become daemon"); exit(0); - break; - case 0: - /* child process */ - log_it("CRON",getpid(),"STARTUP","fork ok"); - (void) setsid(); - break; - default: - /* parent process should just die */ - _exit(0); } } |