我尝试将命令从python发送到Ubuntu OS,以定义特定端口上存在的进程并杀死它:
port = 8000
os.system("netstat -lpn | grep %s" % port)输出:
tcp 22000 127.0.0.1.8000 0.0.0.0:*聆听22000/python
然后:
os.system("kill -SIGTERM 22000")但追踪到了
sh: 1: kill: Illegal option -S
由于某些原因,命令不能通过全信号-SIGTERM传输到操作系统,而只能使用-S。我可以直接从Terminal中删除这个过程,所以似乎是Python或os问题.如何使用Python运行kill命令?任何帮助都是非常感谢的。
发布于 2015-07-23 10:52:01
你可以试试用
import signal
os.kill(process.pid, signal.SIGKILL)文档可以找到这里。
您还可以使用signal.CTRL_C_EVENT,它对应于CTRL+C击键事件。
发布于 2015-07-23 10:52:45
os.system使用sh来执行命令,而不是在终端中获得bash。kill内置于sh中,需要给出没有SIG前缀的信号名称。将os.system命令行更改为kill -TERM 22000。
正如@DJanssens所建议的那样,使用os.kill比为这样简单的事情调用shell更好。
https://stackoverflow.com/questions/31585099
复制相似问题