我有以下问题:
我需要我的 Python 脚本运行一个 bash 脚本。如果 bash 脚本运行时间超过 10 秒,我需要终止它。这是我到目前为止所拥有的:
cmd = ["bash", "script.sh", self.get_script_path()]
process = subprocess.Popen(cmd)
time.sleep(10) # process running here...
procinfo = psutil.Process(process.pid)
children = procinfo.children(recursive=True)
for child in children:
os.kill(child.pid, signal.SIGKILL)
我害怕的是这种情况:bash 脚本在 1 秒内完成,释放它的 PID,系统将 PID 传递给另一个进程。10 秒后,我杀死了我认为属于我的脚本的 PID,但事实并非如此,我杀死了其他一些进程。该脚本需要以 root 身份运行,因为我需要chroot
它。
有任何想法吗?