shell 从mac终端杀死popen创建的正在运行的子进程

4si2a6ki  于 2023-10-23  发布在  Shell
关注(0)|答案(2)|浏览(135)

我有一个python脚本myscript.py

subprocess.Popen(my_command, shell=True)

我从终端运行python3 myscript.py,现在我无法使用ctrl + c停止运行my_commandmy_command将继续运行。我能阻止它吗?
谢谢!2谢谢!

e37o9pze

e37o9pze1#

可以使用psutil

import subprocess

import psutil

def destroyed(proc_pid):
    process = psutil.Process(proc_pid)
    for proc in process.children(recursive=True):
        proc.kill()
    process.kill()

proc = subprocess.Popen(["sleep", " 1000"], shell=True)
try:
    proc.wait(timeout=5)
except subprocess.TimeoutExpired:
    destroyed(proc.pid)
imzjd6km

imzjd6km2#

对于Macbook终端,要暂停Python操作,请使用ctl+z
键入jobs + Enter以查看后台进程列表:

[1] job1
[2] job2

然后键入kill %1 + Enter退出作业1

相关问题