From cbd8b271600173af776928e0316838d1b2f97cb2 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 1 Oct 1994 07:44:49 +0000 Subject: Formerly update.c.~3~ --- sutils/update.c | 40 +++++++++++++++------------------------- 1 file changed, 15 insertions(+), 25 deletions(-) (limited to 'sutils') diff --git a/sutils/update.c b/sutils/update.c index 07e38e41..3c0790c6 100644 --- a/sutils/update.c +++ b/sutils/update.c @@ -20,44 +20,34 @@ #include #include -#include int -main () +main (int argc, char **argv) { - int fd; - - switch (fork ()) + int interval; + + switch (argc) { - case -1: - perror ("Cannot fork"); - exit (1); - case 0: + case 1: + interval = 30; + break; + case 2: + interval = atoi (argv[1]); break; default: - _exit (0); - } - - if (setsid () == -1) - { - perror ("Cannot setsid"); + fprintf (stderr, "Usage: %s [SECONDS]\n", argv[0]); exit (1); } - chdir ("/"); - fd = open ("/dev/null", O_RDWR, 0); - if (fd != -1) + if (daemon (0, 0)) { - dup2 (fd, STDIN_FILENO); - dup2 (fd, STDOUT_FILENO); - dup2 (fd, STDERR_FILENO); - if (fd < STDERR_FILENO) - close (fd); + perror ("daemon"); + exit (1); } - + for (;;) { sync (); - sleep (30); + sleep (interval); } } -- cgit v1.2.3