slurm systemd等待nfs挂载所有文件夹

时间:2018-01-29 14:02:26

标签: centos systemd nfs slurm

我使用slurm,我希望我的deamon在systemd中等待我的nfs mount。

这是我的slurmd.service:

[Unit]
Description=Slurm node daemon
After=network.target nfs-client.target nfs-client.service
ConditionPathExists=/etc/slurm/slurm.conf

[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/slurmd
ExecStart=/usr/sbin/slurmd $SLURMD_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
PIDFile=/var/run/slurmd.pid
KillMode=process
LimitNOFILE=51200
LimitMEMLOCK=infinity
LimitSTACK=infinity

[Install]
WantedBy=multi-user.target

我希望我的服务在我的nfs完全组装时运行。我的nfs位于/ nfs中 因为我的网络很慢而且我的nfs很大,我需要等待1分钟,因为我的nfs完全组装好了。

因为我需要在/ nfs / slurm文件夹中写入文件 实际上当centos开始和slurmd deamon开始我有这个错误" / nfs / slurm没有这样的文件或文件夹"

我尝试使用PathExist参数,但没有工作和TimeoutStartSec,但没有工作,我的deamon运行,我有这个错误。

感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

编写一个脚本,检查nfs挂载是否可用,否则sleep X秒。然后在ExecStartPre= systemd服务文件中使用此脚本。

$ cat /usr/local/bin/checkNFSMount
#!/bin/bash

if [ -d /nfs/slurm ]; then
   exit 0;
else
   sleep 20;
   exit 0;
fi

systemd服务文件中:

ExecStartPre=/usr/local/bin/checkNFSMount
ExecStart=/usr/sbin/slurmd $SLURMD_OPTIONS 

了解ExecStartPrehere

答案 1 :(得分:0)

Systemd有RequiresMountsFor

您可以将以下行添加到slurmd.service的[Unit]部分。

RequiresMountsFor=/nfs

请记住,如果您使用简历并暂停功能,则ResumeTimeout必须大于恢复时间+ nfs挂载时间。