问题描述
我正在尝试将 systemd 用户单位与 slurm 一起使用。为此,user@.service 必须正在运行。通常这是由 pam_systemd 实现的,例如调用ssh 登录用户。
不幸的是,slurm 不使用 pam,所以我必须手工做事。 slurm 确实有一个 prolog.sh 和 epilog.sh,它们分别在每个作业之前和之后运行。所以在 prolog.sh 中我添加了 systemctl start user@<uid>.service
,在 epilog.sh 中我添加了 systemctl stop user@<uid>.service
。
现在这可以单独用于一项工作。但是,如果用户也通过 ssh 登录或有多个作业,则当作业完成时,“user@.service”将停止。只有当该服务的最后一个用户完成时才必须停止。
这就是我被难住的地方。我可以为工作或其他东西保留一个引用计数。但我还必须查明系统上是否还有其他会话在使用该服务。并以一种无种族的方式做到这一点。或者是否有启动/停止 pam 会话的工具?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)