我正在尝试设置SLURM,以使SLURM接受在特定目录中提交的作业,否则拒绝该作业。
要激活序言脚本,我将slurm.conf设置如下:
PrologSlurmctld=/etc/slurm-llnl/prolog/dircheck-prolog
dircheck-prolog脚本位于/ etc / slurm-llnl / prolog中,该脚本读取
#!/bin/bash
if [[ $PWD = /home/slek/Desktop/scratch/* ]];
then
exit 0
fi
exit 1
但是,无论提交的位置如何,仍会提交作业。 任何建议将不胜感激。
答案 0 :(得分:1)
文档指出PrologSlurmctld
参数必须是
slurmctld守护程序在授予新的作业分配之前执行的程序的完全限定路径名
从你的句子中
dircheck-prolog脚本位于/ etc / slurm-llnl / prolog
我假设您的/etc/slurm-llnl/prolog
实际上是一个目录。 Slurm可能会在日志中某处抱怨。
因此,请尝试将PrologSlurmctld=/etc/slurm-llnl/prolog
替换为PrologSlurmctld=/etc/slurm-llnl/dircheck-prolog
但是
此脚本将从职位分配开始,即,在提交/保留/找到资源后,该脚本便会开始。如果要自己过滤提交内容,则需要使用 job提交插件(请参阅JobSubmitPlugins
中的slurm.conf
选项)。
这些旨在用作特定于站点的插件,可用于设置默认作业参数和/或记录事件。
Slurm在contribs/lua/job_submit*.lua
下附带了Lua中的示例脚本。在那里,您可以实现与作业提交,提供错误消息,重新路由作业,自动分配QOS等有关的任何逻辑。