Slurm - 如何自动将 --mail-user 设置为当前用户?

问题描述 投票:0回答:2

我有一个 SLURM 文件,例如

#!/bin/bash
#SBATCH -n 1                    # two cores
#SBATCH --mem=1G                # RAM
#SBATCH --time=01:99:99         # total run time limit (HH:MM:SS)
#SBATCH --mail-user=rylansch
#SBATCH --mail-type=FAIL


python foo.py

我想共享此文件,而无需手动更改邮件用户。我该怎么做?如果我将

#SBATCH --mail-user=rylansch
替换为
#SBATCH --mail-user=$USER
,会起作用吗?

slurm
2个回答
2
投票

Bash 变量

$USER
不会在注释中展开,因此您无法在
#SBATCH --mail-user=$USER
中使用它。

但是文档指出

--mail-user=接收由--mail-type定义的状态更改电子邮件通知的用户。默认值为提交用户。

所以你可以尝试根本不指定

--mail-user
(但当然仍然指定
--mail-type=FAIL


0
投票

要制作任何用户都可以使用的带有电子邮件通知的通用 bash 脚本,请从脚本中删除

#SBATCH --mail-user
行。 然后在文档中添加用户应使用
mail-user
标志调用脚本来获取电子邮件:

sbatch --mail-user="$EMAIL" my_script.sh

此外,您可以在 SBATCH 指令下方动态设置

mail-user
,以防用户未传递该指令。

scontrol update job $SLURM_JOB_ID [email protected]

甚至更好:

if [ -z "$SLURM_MAIL_USER" ]; then
    scontrol update job $SLURM_JOB_ID [email protected]
fi
    

通过动态设置,他们在作业开始时不会收到初始电子邮件,但他们会收到所有其他电子邮件,包括完成情况。

© www.soinside.com 2019 - 2024. All rights reserved.