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
+PAM +LIBWRAP +AUDIT +SELINUX -IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP +APPARMOR
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...