在python子流程中的子shell
在一个python脚本中,我需要启动一个命令如
kill $(ps aux | grep httpd | awk '{print $2}')
使用子进程我试图使用一个函数从https://stackoverflow.com/a/29755431/1355628拆分命令)
这个函数对于使用管道的简单命令来说很好,但不幸的是,上面的代码似乎并不奏效(返回代码似乎完全是随机的)
感谢提前
subprocess.run
采用可选的shell=True
参数,它将在子shell中运行你的命令。 如果您正在处理用户输入,请阅读安全注意事项。
另一种(更好的,imo)解决方案是使用psutil包和os.kill
,如下所示:
import psutil
processes = [p for p in psutil.pids() if 'httpd' in psutil.Process(p).name()]
for process in processes:
os.kill(...)
链接地址: http://www.djcxy.com/p/77097.html
上一篇: Subshell in python subprocess
下一篇: Unknown argument: