首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >os.system()问题下Ubuntu上的销毁过程

os.system()问题下Ubuntu上的销毁过程
EN

Stack Overflow用户
提问于 2015-07-23 10:45:46
回答 2查看 1.3K关注 0票数 1

我尝试将命令从python发送到Ubuntu OS,以定义特定端口上存在的进程并杀死它:

代码语言:javascript
复制
port = 8000
os.system("netstat -lpn | grep %s" % port)

输出:

tcp 22000 127.0.0.1.8000 0.0.0.0:*聆听22000/python

然后:

代码语言:javascript
复制
os.system("kill -SIGTERM 22000")

但追踪到了

sh: 1: kill: Illegal option -S

由于某些原因,命令不能通过全信号-SIGTERM传输到操作系统,而只能使用-S。我可以直接从Terminal中删除这个过程,所以似乎是Pythonos问题.如何使用Python运行kill命令?任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-23 10:52:01

你可以试试用

代码语言:javascript
复制
import signal
os.kill(process.pid, signal.SIGKILL)

文档可以找到这里

您还可以使用signal.CTRL_C_EVENT,它对应于CTRL+C击键事件。

票数 3
EN

Stack Overflow用户

发布于 2015-07-23 10:52:45

os.system使用sh来执行命令,而不是在终端中获得bashkill内置于sh中,需要给出没有SIG前缀的信号名称。将os.system命令行更改为kill -TERM 22000

正如@DJanssens所建议的那样,使用os.kill比为这样简单的事情调用shell更好。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31585099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档