From 1db78faf47eb89556de40d4f4f83e05f224c0533 Mon Sep 17 00:00:00 2001 From: Peter Wemm Date: Wed, 7 Mar 2001 10:38:46 +0000 Subject: [PATCH] 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. --- usr.sbin/cron/cron/cron.c | 14 ++------------ 1 file 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); } }