X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=daemon.git;a=blobdiff_plain;f=daemon.c;fp=daemon.c;h=5b769dd49863cee1d56c120217edf75d0e870720;hp=82b19a1cb1e8ad31693de99ccfd4ca6ae2adb5bd;hb=9c6b9ad6e19924196d66bba74bd87bc91ebf1fef;hpb=0ecfcfec3dab23f0864cddc3d2ad5ab7ca9d4ca0 diff --git a/daemon.c b/daemon.c index 82b19a1..5b769dd 100644 --- a/daemon.c +++ b/daemon.c @@ -33,10 +33,10 @@ #include -#include #include #include #include +#include #include #include @@ -88,15 +88,20 @@ main(int argc, char *argv[]) pfh = pidfile_open(pidfile, 0600, &otherpid); if (pfh == NULL) { if (errno == EEXIST) { - errx(3, "process already running, pid: %d", - otherpid); + fprintf(stderr, "process already running, pid: %d\n", otherpid); + exit(3); } - err(2, "pidfile ``%s''", pidfile); + else { + fprintf(stderr, "pidfile ``%s'': %s\n", pidfile, strerror(errno)); + exit(2); + } } } - if (daemon(nochdir, noclose) == -1) - err(1, NULL); + if (daemon(nochdir, noclose) == -1) { + fprintf(stderr, "%s\n", strerror(errno)); + exit(1); + } /* Now that we are the child, write out the pid */ if (pidfile) @@ -113,7 +118,8 @@ main(int argc, char *argv[]) pidfile_remove(pfh); /* The child is now running, so the exit status doesn't matter. */ - errc(1, errcode, "%s", argv[0]); + fprintf(stderr, "%s: %s\n", argv[0], strerror(errcode)); + exit(1); } static void @@ -122,18 +128,22 @@ restrict_process(const char *user) struct passwd *pw = NULL; pw = getpwnam(user); - if (pw == NULL) - errx(1, "unknown user: %s", user); - - if (setuid(pw->pw_uid) != 0) - errx(1, "failed to setuid to %s", user); + if (pw == NULL) { + fprintf(stderr, "unknown user: %s\n", user); + exit(1); + } + + if (setuid(pw->pw_uid) != 0) { + fprintf(stderr, "failed to setuid to %s\n", user); + exit(1); + } } static void usage(void) { - (void)fprintf(stderr, - "usage: daemon [-cf] [-p pidfile] [-u user] command " - "arguments ...\n"); + fprintf(stderr, + "usage: daemon [-cf] [-p pidfile] [-u user] command " + "arguments ...\n"); exit(1); }