Bug 85297

Summary: systemctl start hangs for SysVinit script with multiple pid files
Product: systemd Reporter: David Gloe <dgloe>
Component: generalAssignee: systemd-bugs
Status: NEW --- QA Contact: systemd-bugs
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description David Gloe 2014-10-21 17:41:21 UTC
The slurm init script can start multiple daemons, so it has multiple pid files listed.

# processname: /opt/slurm/14.11.0-1.0000.44f7451.73.13.ari/sbin/slurmd
# pidfile: /var/run/slurmd.pid
#
# processname: /opt/slurm/14.11.0-1.0000.44f7451.73.13.ari/sbin/slurmctld
# pidfile: /var/run/slurmctld.pid

If slurm is configured so only slurmd starts on the node, systemctl start slurm.service hangs even though slurmd is running and /var/run/slurmd.pid exists; I believe because it's looking for the slurmctld pid file.

If the second pidfile line is removed then systemctl start slurm.service completes successfully, but that breaks nodes where slurmctld is started.

If slurmd is configured to write its pid to /var/run/slurmctld.pid then systemctl start slurm.service completes successfully, but that means slurmctld and slurmd can't run on the same node.

nid00059:~ # systemctl --version
systemd 210
+PAM +LIBWRAP +AUDIT +SELINUX -IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP +APPARMOR
Comment 1 Lennart Poettering 2014-12-09 00:39:01 UTC
Hmm, listing two pidile entries in the headers is an extension that is not supported by systemd, sorry, and it's unlikely to be supported. your daemon really shouldn't ship thing with an extension like that...

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.