[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