如何在EC2服务器上连续运行Python脚本?

时间:2011-06-03 20:53:01

标签: python amazon-ec2

我已经设置了Amazon EC2服务器。我有一个Python脚本,应该将大量数据从Web下载到服务器上。我可以通过ssh从终端运行脚本,但是我经常松开ssh连接。当我松开连接时,脚本会停止。

是否有一种方法可以告诉脚本从终端运行,当我断开连接时,脚本仍然在服务器上运行?

3 个答案:

答案 0 :(得分:30)

您有几个选择。

  • 您可以将脚本添加到cron以定期运行。
  • 您可以手动运行脚本,并使用nohup分离+背景。
  • 您可以运行GNU Screen之类的工具,然后分离终端并注销,只能在以后停止的地方继续。我经常使用它。
    • 例如:
      1. 登录您的计算机,运行:screen
      2. 启动您的脚本,只需关闭终端或正确分离会话:Ctrl + A,D,D。
      3. 断开终端。
      4. 稍后重新连接,然后运行screen -rD。你应该在离开时看到你的东西。
  • 您还可以将您的脚本添加到/etc/rc.d/,以便在图书上调用并始终在运行。

答案 1 :(得分:8)

您还可以使用nohup让您的脚本在后台运行,或者在您与会话断开连接时运行:

nohup script.py &

命令末尾的&明确告诉nohup在后​​台运行脚本。

答案 2 :(得分:1)

如果它只是一个ad-hoc运行的实用程序,而不是某种服务守护程序,我会在screen中运行它。如果需要,可以断开连接,稍后再打开终端...如果断开连接,请重新连接终端。它应该在你的linux发行版包管理器中。只需搜索screen

即可

http://www.gnu.org/software/screen/