From: Ben Pfaff Date: Thu, 12 Aug 2010 16:47:33 +0000 (-0700) Subject: daemon: Make sure that vlog is initialized when a process daemonizes. X-Git-Tag: v1.1.0pre1~98 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=df5d2ed998115b4aace007508e0cc374f5f84ab5;p=sliver-openvswitch.git daemon: Make sure that vlog is initialized when a process daemonizes. If a process daemonizes itself, then it should be possible to control that process's log levels with "ovs-appctl vlog/set" and related commands. The vlog_init() function registers those commands. But vlog_init() doesn't normally get called until the first log message is issued. This can take a while, especially for ovs-controller, where I first noticed the problem. This commit fixes the problem by calling vlog_init() from daemonize_start(), which always gets called as a process daemonizes. --- diff --git a/lib/daemon.c b/lib/daemon.c index 6cb553acf..c8033fbec 100644 --- a/lib/daemon.c +++ b/lib/daemon.c @@ -448,6 +448,10 @@ daemonize_start(void) } make_pidfile(); + + /* Make sure that the unixctl commands for vlog get registered in a + * daemon, even before the first log message. */ + vlog_init(); } /* If daemonization is configured, then this function notifies the parent diff --git a/lib/vlog.c b/lib/vlog.c index ddda26620..cb0567e28 100644 --- a/lib/vlog.c +++ b/lib/vlog.c @@ -438,7 +438,8 @@ vlog_unixctl_reopen(struct unixctl_conn *conn, } } -/* Initializes the logging subsystem. */ +/* Initializes the logging subsystem and registers its unixctl server + * commands. */ void vlog_init(void) {