【发布时间】:2020-07-17 12:54:23
【问题描述】:
我在同一个目录中有两个 python 文件。
文件 1: main.py
import time
import threading
from subprocess import call
def thread_second():
call(["python", "python_test.py"])
processThread = threading.Thread(target=thread_second) # <- note extra ','
processThread.start()
time.sleep(2)
print ('the file is running in the background')
print('exit main')
文件 2: secondary.py
import time
import os
try:
file = open("runnnig.tmp","x")
file.close()
except Exception as FileExistsError:
print('file already exists')
print('Secondary file is running')
# do some staff
time.sleep(10)
我想要完成的是从 main.py 运行 secondary.py。只有一个问题我希望 secondary.py 完全独立于 main.py 运行,以便在打开 secondary.py 后 main.py 退出。有了这个解决方案,我发现here secondary.py 开始正常运行,但 main.py 挂起直到 secondary.py退出。我怎样才能做到这一点?
PS。对于任何想知道我要做什么的人
我有一个在 Raspberry pi 上运行的 node.js 服务器。当向服务器发出请求时,从服务器调用 main.py。 secondary.py 是一个脚本,它告诉 raspberry 开始记录来自传感器的值。 secondary.py 将运行一个无限循环,直到另一个脚本中断它。这就是为什么我不希望 main.py 在 secondary.py 退出之前挂起
【问题讨论】:
-
您可以使用
nohup <cmd> &分离子进程并在后台运行它。不需要main.py中的线程。 -
@0x5453 我怎样才能从 main.py 做到这一点?关于
nohup,我所能找到的只是如何从终端运行脚本。我想要的是从 main.py 中“调用”脚本
标签: python python-3.x