diff --git a/src/collectd.c b/src/collectd.c
index a9b1ac80d847834bfff7836f2ca721ffb80ac5e7..0d9a7db872cf8b714383bff404eeb44e64f43f90 100644 (file)
--- a/src/collectd.c
+++ b/src/collectd.c
int main (int argc, char **argv)
{
+#if COLLECT_DAEMON
+ struct sigaction sigChldAction;
+#endif
struct sigaction sigIntAction;
struct sigaction sigTermAction;
- struct sigaction sigChldAction;
char *configfile = CONFIGFILE;
- char *plugindir = PLUGINDIR;
+ char *plugindir = NULL;
char *datadir = PKGLOCALSTATEDIR;
#if COLLECT_DAEMON
char *pidfile = PIDFILE;
DBG_STARTFILE(logfile, "debug file opened.");
+ /* FIXME this is the wrong place to call this function, because
+ * `cf_read' is called below. We'll need an extra callback for this.
+ * Right now though I'm to tired to do this. G'night. -octo */
+ if ((plugindir == NULL) && ((plugindir = cf_get_mode_option ("PluginDir")) == NULL))
+ plugindir = PLUGINDIR;
+
/*
* Read the config file. This will load any modules automagically.
*/
}
/*
- * install signal handlers
+ * fork off child
*/
- sigIntAction.sa_handler = sigIntHandler;
- sigaction (SIGINT, &sigIntAction, NULL);
-
- sigIntAction.sa_handler = sigTermHandler;
- sigaction (SIGTERM, &sigTermAction, NULL);
-
+#if COLLECT_DAEMON
sigChldAction.sa_handler = SIG_IGN;
sigaction (SIGCHLD, &sigChldAction, NULL);
- /*
- * fork off child
- */
-#if COLLECT_DAEMON
if (daemonize)
{
if ((pid = fork ()) == -1)
} /* if (daemonize) */
#endif /* COLLECT_DAEMON */
+ /*
+ * install signal handlers
+ */
+ sigIntAction.sa_handler = sigIntHandler;
+ sigaction (SIGINT, &sigIntAction, NULL);
+
+ sigIntAction.sa_handler = sigTermHandler;
+ sigaction (SIGTERM, &sigTermAction, NULL);
+
/*
* run the actual loops
*/