我有一个小型 SLURM 集群,我用它来运行作业。我运行一个脚本,当该脚本运行时,我想输入特定的键盘命令“t + Enter”。我相信我应该通过提交另一个作业来做到这一点,但我需要它在第一个运行脚本中运行。
关于如何实现这一目标有什么想法吗?
答案1
乔治,
您不希望将单独的 sbatch 命令排队来执行此操作。如果您使用 OpenHPC 堆栈,则可以使用wwsh ssh -a <command>
where 来-a
表示所有节点,或者将其替换为要在其上运行命令的节点。
至于从现有的批处理脚本中执行此操作,您是否考虑过使用expect
?如果您需要运行输入的时间是确定性的,则该expect
程序将允许您键入类似的内容(t 字符后跟返回键)。send -- "t\r"
如果您想了解更多信息expect
,请查看类似https://likegeeks.com/expect-command/。
根据我的经验,如果您的集群没有太多空间,或者您希望获得最大性能,使用仅命令行方法而不是在系统上安装 x11(或至少是运行所需的部分xdotool
),这会很有帮助。个人舒适度将决定这一点。