我需要使用python启动一个完全独立的进程。这意味着即使退出了主进程,子进程仍然可以运行。
就像Linux中的shell:
#./a.out &
然后即使失去了ssh连接,a.out仍然可以继续运行。
我需要在Linux和Windows上使用类似但统一的方法
我尝试过多处理模块
import multiprocessing
import time
def fun():
while True:
print("Hello")
time.sleep(3)
if __name__ == '__main__':
p = multiprocessing.Process(name="Fun", target=fun)
p.daemon = True
p.start()
time.sleep(6)
如果我设置了p.daemon = True
,那么print("Hello")
将在主进程退出后的6秒内停止。
但是,如果我设置了p.daemon = False
,主进程将不会按时退出,并且如果我按Ctrl + C强制退出主进程,则print("Hello")
也将停止。
所以,即使退出了主进程,还有什么办法可以继续打印此“ Hello
”?
由于脚本是主进程,而启动的进程是子进程,所以我认为这是不可能的,因为当主进程死亡时,“子进程”被杀死。也许有一个fork选项,但是我想进程树仍然是分层的,因此您的“有趣”进程将被杀死。
您能否详细说明您要解决的用例。似乎应该用不同的体系结构解决此问题。