Here is an example of a modified system service file which uses ExecStartPre to create the directory under /var/run on the fly. This is for slurmctld. As /var/run is I think in RAM this creates the folder when the service starts. There are other customisations for our environment in here, but I guess this may help anyone see how this is done.
[Unit] Description=Slurm controller daemon After=network.target munge.service RequiresMountsFor=/home/apps BindsTo=home-apps.mount ConditionPathExists=/etc/slurm/slurm.conf [Service] User=slurm Group=slurms Type=forking EnvironmentFile=-/etc/sysconfig/slurmctld PermissionsStartOnly=true ExecStartPre=/usr/bin/mkdir --parents /var/run/slurm ExecStartPre=/usr/bin/chown -R slurm:slurms /var/run/slurm/ ExecStart=/usr/sbin/slurmctld $SLURMCTLD_OPTIONS ExecReload=/bin/kill -HUP $MAINPID PIDFile=/var/run/slurm/slurmctld.pid LimitNOFILE=65536 William -----Original Message----- From: slurm-users <slurm-users-boun...@lists.schedmd.com> On Behalf Of Shane Kelly Sent: 10 January 2020 07:53 To: slurm-users@lists.schedmd.com Subject: Re: [slurm-users] Slurm 19-05-4-1 and Centos8 Apologies for taking so long to wrap this thread up. For me, slurm 19-05.4.1 builds correctly with Philip Kovacs mod to the spec file (see below). It installs and runs (after providing some massaging to the RH/Centos specific config locations/bits*) and I now have it installed with accounting on five nodes of our test cluster, and all appears well. Many thanks to all who contribute to this mailing list. Kind Regards, Shane Kelly * Centos8 config/install bits (from memory) /var/run will not allow slurm to write a pid there, so I put a directory for all the slurm{d|ctld|dbd} PIDS under /var/run/. Don't forget to add a .conf file to /usr/lib/tmpfiles.d/ to make your folder persist over a reboot. I copied the munge one, suitably edited. The systemd service files are hardwired to write pids to /var/run, so they need altering to reflect the /var/run/slurm path that I use. Hope this helps. > There's a typo in there. It's lazy not -lazy. Try adding exactly >this line just before the %configure: ># use -z lazy to allow dlopen with unresolved symbolsexport >LDFLAGS="%{build_ldflags} -Wl,-z,lazy" <--- this >should fix it%configure \ > On Sunday, December 8, 2019, 05:30:00 PM EST, Brian Andrus ><toomuc...@gmail.com> wrote: > > >There must be something more, because I am trying it with > > >[root@node02 ~]# rpm -E "%{build_ldflags}" > -Wl,-z,relro -Wl,-z,now > -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,-lazy > >It builds (as expected) but slurmd will not start due to the same >error. (Note, I have also tried LDFLAGS without --specs and without >-Wl,-z-now with the same result) > -- Shane Kelly HPC Systems Administrator GPOL WWCRC Garscube Campus University of Glasgow shane.ke...@glasgow.ac.uk ext: 3031