diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2010-06-29 11:22:24 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2010-06-29 11:22:24 +0000 |
commit | 27f032f4765e120b79ea6ced513ac7d32e470815 (patch) | |
tree | b08708f28264915ddf6b9d862165173891787170 | |
parent | 586eec61ad4692cc4c78e0e8d35091a83e027d8b (diff) | |
download | sircbot-27f032f4765e120b79ea6ced513ac7d32e470815.tar.bz2 sircbot-27f032f4765e120b79ea6ced513ac7d32e470815.tar.xz |
logfile support
Add support for logfile via -l option.
-rw-r--r-- | sircbot.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -65,7 +65,7 @@ static int write_pid(const char *file) return n; } -int daemonize(const char *pidfile) +int daemonize(const char *pidfile, const char *logfile) { int devnull, f; int pid = fork(); @@ -93,8 +93,8 @@ int daemonize(const char *pidfile) return -1; /* redirect stdin/stdout/stderr to /dev/null */ freopen("/dev/null", "r", stdin); - freopen("/dev/null", "w", stdout); - freopen("/dev/null", "w", stderr); + freopen(logfile, "w", stdout); + freopen(logfile, "w", stderr); return 0; } @@ -410,14 +410,18 @@ int main(int argc, char *argv[]) const char *user = "sircbot"; const char *group = "sircbot"; const char *pass = NULL; + const char *logfile = "/dev/null"; struct sircbot_channel *chan; int i, c, port = 6667; - while ((c = getopt(argc, argv, "fn:p:P:r:s:")) != -1) { + while ((c = getopt(argc, argv, "fl:n:p:P:r:s:")) != -1) { switch (c) { case 'f': foreground = 1; break; + case 'l': + logfile = optarg; + break; case 'n': nick = optarg; break; @@ -458,7 +462,7 @@ int main(int argc, char *argv[]) /* daemonize */ if (!foreground) { - if (daemonize(pidfile) < 0) + if (daemonize(pidfile, logfile) < 0) return 1; } signal(SIGTERM, sighandler); |