次の問題があります。
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 を強制終了しますが、そうではなく、他のプロセスを強制終了します。スクリプトは必要なので、ルートとして実行する必要がありますchroot
。
何か案は?