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") 
posted @   爱吃砂糖橘的白龙  阅读(692)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示