X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=blobdiff_plain;f=procd.c;h=dd4909ea4168f3b8e5acdd4afdcd27697d76a4d8;hp=6fb0a72c687e4f1eee7ba748555502625740ba17;hb=32534f7058d23dcab44408506848cec199e57fbb;hpb=d49096fea2499f118976fc6ad17e803847629eab diff --git a/procd.c b/procd.c index 6fb0a72..dd4909e 100644 --- a/procd.c +++ b/procd.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -28,11 +29,12 @@ unsigned int debug; static int usage(const char *prog) { - ERROR("Usage: %s [options]\n" + fprintf(stderr, "Usage: %s [options]\n" "Options:\n" - "\t-s \tPath to ubus socket\n" - "\t-h \trun as hotplug daemon\n" - "\t-d \tEnable debug messages\n" + " -s Path to ubus socket\n" + " -h run as hotplug daemon\n" + " -d Enable debug messages\n" + " -S Print messages to stdout\n" "\n", prog); return 1; } @@ -40,8 +42,15 @@ static int usage(const char *prog) int main(int argc, char **argv) { int ch; + char *dbglvl = getenv("DBGLVL"); + int ulog_channels = ULOG_KMSG; - while ((ch = getopt(argc, argv, "d:s:h:")) != -1) { + if (dbglvl) { + debug = atoi(dbglvl); + unsetenv("DBGLVL"); + } + + while ((ch = getopt(argc, argv, "d:s:h:S")) != -1) { switch (ch) { case 'h': return hotplug_run(optarg); @@ -51,18 +60,25 @@ int main(int argc, char **argv) case 'd': debug = atoi(optarg); break; + case 'S': + ulog_channels = ULOG_STDIO; + break; default: return usage(argv[0]); } } + + ulog_open(ulog_channels, LOG_DAEMON, "procd"); + + setsid(); uloop_init(); procd_signal(); - trigger_init(); if (getpid() != 1) procd_connect_ubus(); else procd_state_next(); uloop_run(); + uloop_done(); return 0; }