关闭终端后停止高级Python调度程序作业

时间:2014-05-03 16:43:29

标签: python terminal scheduler jobs shutdown

背景

我使用Advanced Python Scheduler(APScheduler)使用类似下面的代码启动了几个作业。

sched = Scheduler()
sched.start()
sched.add_interval_job(function, minutes=1)
sleep(10000)
sched.shutdown()

我是从终端做到的。

python script.py

问题

我打算在关机前多次运行这些工作。不幸的是,我在sleep阶段意外关闭了终端,然后才能使用sched.shutdown()正确停止作业。

我相信这些工作仍然在后台运行,因为我有证据表明即使在终端关闭后function也已应用。

问题

有没有办法确定哪些作业仍然在后台某处运行并关闭它们?提前谢谢!

2 个答案:

答案 0 :(得分:2)

如果你运行你的脚本:

python scrip.py

关闭终端后,python进程将被终止,因此你的脚本停止运行。

但是如果你用&

运行你的脚本
python scrip.py &
终止关闭后

进程不会被终止,您可以使用

进行检查
ps -e | grep python

您必须了解作业和系统过程之间的差异。关闭终端会终止进程。如果要检查哪些作业仍在工作,可以使用print_jobs()函数。

答案 1 :(得分:2)

使用kill <PID>查找流程ID并终止流程,或只是pkill -f script.py