如何强制用户在Slurm中的某个目录中提交作业

时间:2019-05-04 23:27:30

标签: slurm

我正在尝试设置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

但是,无论提交的位置如何,仍会提交作业。 任何建议将不胜感激。

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等有关的任何逻辑。