如何解决Python子进程似乎无法运行
import os
import pwd
import subprocess
import sys
p = subprocess.Popen(['python','process_script.py'],cwd="/execute",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
process_script.py看起来像这样:
import time
import random
import string
import helper
#
def run():
while True:
filename = "/execute/" + "".join([random.choice(string.ascii_letters) for j in range(8)]) + ".txt"
helper.execute(f"echo foo > {filename}")
time.sleep(10)
#
run()
[EDIT]实际上ps没有显示其他进程,因此看起来线程终止了……但是如何以及为什么?
如果我直接运行process_script.py,则会创建文件。
解决方法
当父级退出时,Popen子进程中的
死亡,您可以在第一个脚本的末尾添加p.wait()
以防止父级退出。
这个链接也很有用,看看吧!
subprocess gets killed even with nohup
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。