我正在编写一个可以执行外部 bash 脚本的 python 脚本。这个 bash 脚本做了一些事情,执行完成后,它会杀死 python 进程,并可能重新启动机器。
按照设计,bash 脚本会杀死 python 进程并重新启动机器,但我不确定即使它的父 python 进程死了它是否仍会继续执行。由于机器将在 bash 脚本完成后重新启动,因此我对它的输出不感兴趣。
即使在父 python 进程死亡后,bash 脚本还会继续运行吗?
如果您使用:
os.system('/path/to/script.sh &')
或者
subprocess.call('/path/to/script.sh &', shell=True)
即使 python 脚本死了,这个过程也会继续进行。
如果您总是要重新启动,请让操作系统杀死父级,而您不必担心。
是的。您可以启动一个子进程,该子进程可以在启动它的进程退出后继续运行。这是不使用shell=True
or的方法os.system()
。