如何在服务器上全天候运行python脚本?

我有一个Python脚本,我必须在AWS 24/7上运行。 我怎样才能做到这一点? 我应该像在本地一样运行它:

python3 main.py 

或者我应该是:

 python3 main.py & 

我把它放在主目录下有什么区别吗? 或者在子目录中? 这有什么关系吗?

有更多的select:

  • 你可以按照你的build议使用python3 main.py &然后closuressshpipe道(使用without &会在closuresssh连接时退出脚本)

  • 您可以为脚本设置一个cron作业

  • 一旦我做了一个简单的bash脚本,它将监听远程git服务器上的新信息,并在每次进行新的更改时运行更新后的脚本

    • 如果您计划更新脚本并进行不同的部署更改,这可能是一个好主意;
    • 我将首先创build一个在启动时作为服务运行的脚本,检查一切正常并且是最新的,然后定期启动我所需的脚本,检查更新;
    • 没有必要使用git,另一个例子可能是使用rsync ;

编辑:

监视脚本:

  • 监控vm使用的来自AWS的资源;
  • 发送电子邮件,其中包含当前在系统上运行的进程的输出或某种日志;
  • 创build一个迷你Web界面,显示正在运行的服务;
  • 使用像Sensu,Nagios,Datadog等监控工具

你在运行什么操作系统? 您应该强烈考虑使用本地init系统。 如果你幸运的话,你会用systemd来做一些事情,然后一个服务文件写起来很简单。

 [Unit] Description=My awesome program [Service] ExecStart=/usr/local/bin/awesome.py [Install] WantedBy=multi-user.target 

你可以使用screen ( 人 )

开始你的程序:

  • 用sshlogin,
  • 启动屏幕: $ screen
  • 开始你的程序: $ python3 main.py
  • 使用组合键CA(Ctrl + A)+ D(屏幕会话中的内容将继续运行)从屏幕分离,
  • 从ssh注销

再次检查你的程序执行情况:

  • 用sshlogin(和以前一样的用户)
  • 使用$ screen -r重新连接到现有的屏幕会话