2017-04-11 192 views
0

我想在python脚本中执行相当于killall -s USR1 termite的操作。按名称发送信号给进程

当然,我可以做os.system('killall -s USR1 termite'),它工作正常,但对我来说这看起来不太优雅。

我看到os.kill(),但不是在这需要在PID作为参数,这是我没有(也可能存在相同名称的多个进程)。

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

回答

1

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

例与呼叫

from subprocess import call 

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

这不是更优雅,但至少更灵活一点。谢谢。 – Kaligule

0

您可以使用psutil包找到符合您的条件(如姓名)的所有进程。它有一个方法send_signal()(见docs)。