python程序不会在后台运行

python程序不会在后台运行,python,background-process,Python,Background Process,以下节目: import time import random while True: t=time.time()+1. f=0. while time.time()<t: f+=random.random()-.5 time.sleep(1.) 导入时间 随机输入 尽管如此: t=time.time()+1。 f=0。 而time.time()打开终端的一种方法是将程序另存为*.pyw,或者使用pythonw.exe(windows)运行

以下节目:

import time
import random
while True:
    t=time.time()+1.
    f=0.
    while time.time()<t:
        f+=random.random()-.5
    time.sleep(1.)
导入时间
随机输入
尽管如此:
t=time.time()+1。
f=0。

而time.time()打开终端的一种方法是将程序另存为
*.pyw
,或者使用
pythonw.exe
(windows)运行它。为了终止程序,可以使用PID:

import os

f = file('test.txt','w')
f.write(str(os.getpid()))
f.close()

希望这有帮助。我不使用OSX的Linux,但我可以想象它会是类似的。

您需要
对流程进行后台监控。这意味着将其与控制终端断开。当您按原样运行它时,它保持其控制终端,并在终端关闭时通过信号SIGHUP退出。A的纯Python实现具有函数
daemonize
。您只需调用它,就可以在后台运行,与控制终端断开连接。

程序“gnu屏幕”就是这样做的。您可以启动屏幕会话,运行程序,然后使用Ctrl-a和d从会话中分离。若要重新连接,请运行screen-r.

为什么要这样做?您应该查看cron作业。您可以在类似于。。。