<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>The binaries are probably compiled with the RPATH switch enabled.
<br>
</p>
<p><a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/Rpath">https://en.wikipedia.org/wiki/Rpath</a><br>
</p>
<pre class="moz-signature" cols="72">Prentice</pre>
<div class="moz-cite-prefix">On 2/18/20 6:18 PM, Dean Schulze wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CA+LiX6HAjnH5MN3=xoOTmLCBGG+i2L7G6TYq8FmiXvT5_idQgw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">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:
<div><br>
</div>
<div>$ find ./ -type f -exec grep
/home/dean/src/slurm.versions/slurm-19.05.4.build {} /dev/null
\;<br>
./Makefile:prefix =
/home/dean/src/slurm.versions/slurm-19.05.4.build<br>
Binary file ./slurmd.o matches<br>
Binary file ./get_mach_stat.o matches<br>
Binary file ./req.o matches<br>
Binary file ./slurmd matches<br>
</div>
<div><br>
</div>
<div>I can't tell what is going on in the Makefile that puts
that string into the .o file and the slurmd binary, however.</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Feb 18, 2020 at 3:44
PM Dean Schulze <<a href="mailto:dean.w.schulze@gmail.com"
moz-do-not-send="true">dean.w.schulze@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">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:
<div><br>
</div>
<div>fatal: Unable to find slurmstepd file at
/home/dean/src/slurm.versions/slurm-19.05.4.build/<br>
</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>Here's my slurmd.service file on my node:</div>
<div><br>
</div>
<div>Unit]<br>
Description=Slurm node daemon<br>
After=munge.service network.target remote-fs.target<br>
ConditionPathExists=/etc/slurm/slurm.conf<br>
<br>
[Service]<br>
Type=forking<br>
EnvironmentFile=-/etc/sysconfig/slurmd<br>
ExecStart=/usr/local/sbin/slurmd $SLURMD_OPTIONS<br>
ExecReload=/bin/kill -HUP $MAINPID<br>
PIDFile=/var/run/slurmd.pid<br>
KillMode=process<br>
LimitNOFILE=131072<br>
LimitMEMLOCK=infinity<br>
LimitSTACK=infinity<br>
Delegate=yes<br>
TasksMax=infinity<br>
<br>
[Install]<br>
WantedBy=multi-user.target<br>
</div>
<div><br>
</div>
<div>Why is the slurmd binary looking for the build path?
That path is not in any .service or .conf file on the
node.<br>
</div>
</div>
</blockquote>
</div>
</blockquote>
</body>
</html>