我正在尝试在python中为slurm作业编写一个调度程序脚本。
基本上,我有一个包含在函数中的脚本,我们称之为job_array_scheduler()
,它包含一个time.sleep()
循环。预计这将持续一天或更长时间。我希望能够从python中作为一个单独的线程启动这个函数,这样我就可以退出会话,这个东西将继续运行。
我尝试这样做:
import threading
scheduler_thread = threading.Thread(target=job_array_scheduler, args=args, daemon=True)
scheduler_thread.start()
但是当我退出python会话时就会退出(即只有exit
)。
如何绕过这个,保持上面的线程活着,这样我可以退出python会话甚至关闭我的用户?
我能想到的唯一方法就是编写另一个脚本来包装上面的内容,所以我可以在shell的后台运行它来做python wrapper_script.py &
这样的事情但是我更喜欢为了避免这种情况,因为我必须为每个我想做的工作编写一个单独的外部脚本。