]> xenbits.xensource.com Git - people/julieng/xen-unstable.git/commitdiff
xenconsoled: Remove unexpected daemonize behavior
authorRoss Lagerwall <ross.lagerwall@citrix.com>
Mon, 2 Nov 2015 11:17:38 +0000 (11:17 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 4 Nov 2015 15:11:00 +0000 (15:11 +0000)
Previously, xenconsoled's daemonize function would do nothing if its
parent process is init (as it is under systemd but not sysv init).
This is confusing. Instead, always daemonize when asked to, but use the
"interactive" switch when running from the systemd service.

Because a pidfile is only written when daemonizing, drop the pidfile
parameters from the service file (systemd keeps track of the pids
anyway).

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
tools/console/daemon/utils.c
tools/hotplug/Linux/systemd/xenconsoled.service.in

index dbb3b125167c5feff022ac4d509ae44857a4df87..644f6afbbfed30663129a845b2f1dd8661d6c236 100644 (file)
@@ -52,10 +52,6 @@ void daemonize(const char *pidfile)
        int i;
        char buf[100];
 
-       if (getppid() == 1) {
-               return;
-       }
-
        if ((pid = fork()) > 0) {
                exit(0);
        } else if (pid == -1) {
index cd282bf7ffa016e49f825dcc1cbacac2d30210c3..8e333b114eb0bc1fb0cc8ec98f0454d9e6f7a935 100644 (file)
@@ -10,10 +10,9 @@ Environment=XENCONSOLED_ARGS=
 Environment=XENCONSOLED_TRACE=none
 Environment=XENCONSOLED_LOG_DIR=@XEN_LOG_DIR@/console
 EnvironmentFile=@CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons
-PIDFile=@XEN_RUN_DIR@/xenconsoled.pid
 ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
 ExecStartPre=/bin/mkdir -p ${XENCONSOLED_LOG_DIR}
-ExecStart=@sbindir@/xenconsoled --pid-file @XEN_RUN_DIR@/xenconsoled.pid --log=${XENCONSOLED_TRACE} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS
+ExecStart=@sbindir@/xenconsoled -i --log=${XENCONSOLED_TRACE} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS
 
 [Install]
 WantedBy=multi-user.target