我尝试从 python shell 向 Ubuntu OS
发送命令来定义特定端口上存在的进程并终止它:
port = 8000
os.system("netstat -lpn | grep %s" % port)
输出:
tcp 0 0 127.0.0.1.8000 0.0.0.0:* LISTEN 22000/python
然后:
os.system("kill -SIGTERM 22000")
但得到了跟踪
sh: 1: kill: 非法选项 -S
由于某些原因,命令无法通过完整信号 -SIGTERM
传输到操作系统,而只能通过 -S
传输。我可以直接从 Terminal
终止这个进程,看来这是 Python
或 os
问题...我如何运行 kill
命令使用 Python?
感谢任何帮助
最佳答案
os.system
使用 sh
来执行命令,而不是您在终端中获得的 bash
。 sh
中内置的 kill
要求提供信号名称时不带 SIG
前缀。将 os.system
命令行更改为 kill -TERM 22000
。
[编辑] 正如@DJanssens 建议的那样,使用 os.kill
比调用 shell 来处理这种简单的事情更好。
关于python - 使用 os.system() 问题在 Ubuntu 上终止进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31585099/