4

我有一个不断运行的 python 脚本(它有一个无限循环),但我希望它在运行时仍然能够接受输入。它将在后台运行,然后在任何时候我都希望能够输入

scriptname stop

并停止它(或类似的东西)。这样它就可以调用关闭方法来保存信息并退出。

目前它在终端的前台运行,并且无法通过键盘中断来停止,所以杀死它的唯一方法是关闭终端或杀死python。

我怎么能做这样的事情?

4

2 回答 2

3

使用supervisord. 它的存在是为了管理进程,并提供一个命令界面来启动和停止它们。

当主管杀死一个进程时,它会发送 SIGTERM (或您选择的任何其他信号)。因此,要干净地关闭,您需要处理该信号。

请参阅有关如何处理 SIGTERM 的问题:Python - 捕获所有信号

进程仍然可以在自己的管道上监听输入,并以这种方式发送输出。

于 2012-11-20T18:01:04.363 回答
0

如果您在 Windows 中,那么您来对地方了...

只需将您的文件重命名script.pyscript.pyw并正常使用即可。
您的脚本将在后台运行。

要关闭该脚本:
转到Task Manager,单击Process Tab ,注意pythonEnd Task

如果您需要更多信息,我已准备好为您提供……
我不确定 Linux 或 Ubuntu。
谢谢。

于 2017-06-16T23:09:20.527 回答