按名称向进程发送信号

时间:2017-04-11 09:36:16

标签: python unix process signals

我想在python脚本中执行等效的killall -s USR1 termite

当然我可以os.system('killall -s USR1 termite')做得很好,但对我来说这看起来并不优雅。

我看到os.kill(),但是名称取代了名称,它将 pid 作为参数,我没有(也有多个进程)可能存在相同的名称。)

有没有优雅和pythonic的方式来做到这一点?

2 个答案:

答案 0 :(得分:1)

你总是有子进程模块而不是OS,接受参数,但是如果你没有找到os.system或call()优雅,我相信你必须实现自己的类来创建你的抽象层。

呼叫示例

from subprocess import call

call("killall", "-s", "USR1", "terminate")

答案 1 :(得分:0)

您可以使用psutil包查找符合条件的所有流程(例如名称)。它有一个方法send_signal()(参见docs)。