繁体   English   中英

Python子进程似乎不起作用

[英]Python child process doesn't seem to function

我运行这个 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()

[编辑] 事实上 ps 没有显示其他进程,所以看起来线程终止了......但是如何以及为什么?

如果我直接运行 process_script.py,则会创建文件。

在 Popen 子进程中,当父进程退出时,您可以在第一个脚本的末尾添加p.wait()以防止父进程退出。 这个链接也很有用,看看吧! 即使使用 nohup 子进程也会被杀死

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM