Unix:Python脚本是否经常运行最佳实践?

Mo.*_*Mo. 10 python unix ubuntu

我有一个处理HTTP数据流数据的Python脚本,理论上我需要这个脚本在任何时候都是永久运行的,除非我手动将其删除以更新它并再次运行它.

我想知道这样做的最佳做法是在Unix(特别是Ubuntu)上,这样即使终端关闭等,除非进程或服务器关闭,否则脚本会继续在后台运行?

谢谢

Ram*_*Ram 12

根据您的问题,您暗示您将从终端启动脚本,而不是通过任何Linux的启动脚本管理方法(如systemd或upstart或init.d脚本)启动脚本.

如果您打算从终端启动脚本,并且希望它在关闭终端后继续运行,则需要做两件事:

1.在脚本之后附加"&"使其在后台运行.

2.关闭终端时,与之关联的shell会在死亡前向所有进程发送HUP信号.要忽略HUP信号并继续在后台运行,您需要使用'nohup'启动脚本.

tl; dr以
这种方式运行你的脚本:

$ nohup python mypythonscript.py &
Run Code Online (Sandbox Code Playgroud)


Jor*_*zen 7

将您的脚本添加到rc.local会起作用,但我认为"最佳实践"是使用Upstart.看这篇文章:

Daemon vs Upstart for python脚本


Ale*_*nov 6

这是一个无限循环。您可以在启动时启动脚本,它会一直运行,直到您终止进程本身或关闭计算机。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import time

while True:
    print 'Hello'
    time.sleep(2) # 2 second delay
Run Code Online (Sandbox Code Playgroud)