Python程序执行shell命令并关闭进程-总结
需求说明
linux下,有时候我们用Python3执行一个shell命令,这会开启一个进程。
但是这个进程可能能不会主动关闭(比如Linux下的ping指令会一直持续执行),我们希望这个进程执行指定时间后就终止。
重点不是开启一个进程执行shell指令,是找到进程号,并精准杀死这个进程,找了好多资料才试验成功,这里做一个记录。
代码
Python3:
#!/usr/bin/python3
import subprocess
import time
import os
import signal
cmd = 'ping www.baidu.com' #替换为你想要执行的指令
p = subprocess.Popen(cmd, shell=True, preexec_fn=os.setsid)
print("PID: ",p.pid)
print("Sleep now...")
time.sleep(15) # 假设我们指定程序执行15s,然后杀死它
p.terminate()
p.wait()
os.killpg(p.pid, signal.SIGTERM)
print("End")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)