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

时间:2015-06-09 20:47:29

标签: python unix ubuntu

我有一个处理HTTP数据流数据的Python脚本,理论上我需要这个脚本一直在运行,除非我手动将其删除以更新它并再次运行。

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

谢谢

4 个答案:

答案 0 :(得分:11)

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

如果您打算从终端启动脚本,并且希望在关闭终端后继续运行脚本,则需要执行两项操作

1.通过附加'&'使其在后台运行。在你的脚本之后。

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

TL;博士
以这种方式运行脚本:

$ nohup python mypythonscript.py &

答案 1 :(得分:6)

将您的脚本添加到rc.local会有效,但我认为“最佳做法”是使用Upstart。看这篇文章:

Daemon vs Upstart for python script

答案 2 :(得分:3)

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

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

import time

while True:
    print 'Hello'
    time.sleep(2) # 2 second delay

答案 3 :(得分:1)

我不确定"最佳实践"这是你可以做的:

将程序添加到: /etc/rc.d/rc.local中

这将使程序在启动时运行。

如果您添加'&'到行尾,它将在后台运行。

如果你不想手动运行程序(不是在启动时),你可以通过按ctrl + alt + f1切换到另一个tty,(这将打开tty1并将与f1-f6一起使用)然后运行命令。这个终端你不必在一个窗口打开,所以你不必担心它关闭。要返回桌面,请使用ctrl + alt + f7。