繁体   English   中英

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

[英]How to continuously run a Python script on an EC2 server?

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

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

你有几个选择。

  • 您可以将脚本添加到cron以定期运行。
  • 您可以手动运行脚本,并使用nohup将其分离+背景。
  • 您可以运行诸如 GNU Screen 之类的工具,然后分离您的终端并注销,然后再从您离开的地方继续。 我经常使用这个。
    • 例如:
      1. 登录到您的机器,运行: screen
      2. 启动您的脚本,然后关闭您的终端或使用以下命令正确分离您的 session:Ctrl+A、D、D。
      3. 断开与终端的连接。
      4. 稍后重新连接,然后运行screen -rD 你应该看到你的东西,就像你离开它一样。
  • 您还可以将脚本添加到/etc/rc.d/以在书上调用并始终运行。

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

nohup script.py &

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

如果它只是您运行临时的实用程序,而不是某种服务守护程序,我会在screen中运行它。 如果您愿意,您可以断开连接并稍后打开终端备份......或者如果您断开连接,请重新连接终端。 它应该在您的 linux 发行版 package 管理器中。 只搜索screen

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

nohup在忽略挂断信号的情况下运行给定命令,以便在您注销后该命令可以继续在后台运行。

句法:

nohup Command [Arg]...

例子:

nohup example.py
nohup rasa run

此外,您可以使用cron命令连续运行脚本。

更多:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM