我有一个不断运行的python脚本(它有一个无限循环),但我希望它能够在运行时仍然接受输入。它将在后台运行,然后我希望能够键入
scriptname stop
并停止它(或类似的东西)。这样它就可以调用shutdown方法来保存信息并退出。
目前它在终端的前台运行,并且不能通过键盘中断停止,因此杀死它的唯一方法是关闭终端或杀死python。
我该怎么办?
答案 0 :(得分:3)
使用supervisord
。存在管理进程,并提供命令接口来启动和停止它们。
当主管杀死进程时,它会发送SIGTERM(或您选择的任何其他信号)。因此,要彻底关闭,您需要处理该信号。
请参阅有关如何处理SIGTERM的问题:Python - Trap all signals
进程仍然可以在自己的管道上侦听输入,并以这种方式发送输出。
答案 1 :(得分:0)
如果您在Windows中,那么您就在正确的位置......
只需将您的文件重命名为: script.py
即 script.pyw
并正常使用。
您的脚本将在后台运行。
关闭该脚本:
转到任务管理器,单击处理选项卡,注意 python ,结束任务。
如果您需要更多信息我准备提供给您...
我不确定Linux或Ubuntu
感谢。