[slurm-users] [External] Re: Why does the make install path get hard coded into the slurmd binary?
Prentice Bisbal
pbisbal at pppl.gov
Wed Feb 19 15:44:53 UTC 2020
The binaries are probably compiled with the RPATH switch enabled.
https://en.wikipedia.org/wiki/Rpath
Prentice
On 2/18/20 6:18 PM, Dean Schulze wrote:
> The ./configure --prefix=... value gets into the Makefiles, which is
> no surprise. But it is also getting into the slurmd binary and .o
> files. Here's what I found in the slurmd/ source directory:
>
> $ find ./ -type f -exec grep
> /home/dean/src/slurm.versions/slurm-19.05.4.build {} /dev/null \;
> ./Makefile:prefix = /home/dean/src/slurm.versions/slurm-19.05.4.build
> Binary file ./slurmd.o matches
> Binary file ./get_mach_stat.o matches
> Binary file ./req.o matches
> Binary file ./slurmd matches
>
> I can't tell what is going on in the Makefile that puts that string
> into the .o file and the slurmd binary, however.
>
>
> On Tue, Feb 18, 2020 at 3:44 PM Dean Schulze <dean.w.schulze at gmail.com
> <mailto:dean.w.schulze at gmail.com>> wrote:
>
> I built slurm on one machine (controller) and copied the new
> slurmd binary to a node. When I started it systemctl it failed
> with the message:
>
> fatal: Unable to find slurmstepd file at
> /home/dean/src/slurm.versions/slurm-19.05.4.build/
>
> The path it refers to is what I gave to ./configure --prefix==...
> on the controller where I built the binaries. The --prefix= value
> is used by the make install step to output the slurm* binaries it
> creates to. That path also gets written into the generated
> .service files. for ExecStart=.. I change the ExecStart= in the
> .service files to /usr/local/sbin where I place the slurm* binaries.
>
> Here's my slurmd.service file on my node:
>
> Unit]
> Description=Slurm node daemon
> After=munge.service network.target remote-fs.target
> ConditionPathExists=/etc/slurm/slurm.conf
>
> [Service]
> Type=forking
> EnvironmentFile=-/etc/sysconfig/slurmd
> ExecStart=/usr/local/sbin/slurmd $SLURMD_OPTIONS
> ExecReload=/bin/kill -HUP $MAINPID
> PIDFile=/var/run/slurmd.pid
> KillMode=process
> LimitNOFILE=131072
> LimitMEMLOCK=infinity
> LimitSTACK=infinity
> Delegate=yes
> TasksMax=infinity
>
> [Install]
> WantedBy=multi-user.target
>
> Why is the slurmd binary looking for the build path? That path is
> not in any .service or .conf file on the node.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schedmd.com/pipermail/slurm-users/attachments/20200219/5f14cb3d/attachment.htm>
More information about the slurm-users
mailing list