在Amazon EC2上让Python脚本无限运行

15 投票
2 回答
9458 浏览
提问于 2025-04-18 03:21

我有一个Python脚本,它基本上是一直在运行的,每秒钟检查一次网页,如果有任何值发生变化就通知我。我把它放在了AWS的EC2实例上,并通过ssh远程运行。大约半小时后我去查看时,脚本运行得很好。

但是问题是,过了几个小时我再去查看时,ssh连接断开了。当我重新登录时,发现没有任何程序在运行。我检查了所有正在运行的进程,什么都没有。

有没有人能教我怎么让它在AWS EC2实例上一直运行(或者直到我手动停止它)?非常感谢。


补充:我使用的是AWS提供的Java SSH客户端来运行这个脚本。

2 个回答

17

你可以使用nohup命令来运行程序,这样即使你关闭了SSH连接,你的程序也会继续运行。

比如:nohup python yourscriptname.py &

想了解更多信息,可以使用man nohup查看相关帮助。

19

你可以使用 Linux screen。这个工具不仅能帮你避免因为断线而造成的麻烦,还能让你在一个SSH会话中使用多个窗口,提高工作效率。

安装方法:

sudo apt-get install screen

开始一个新的会话:

screen -S <screen_name>

在screen会话中运行你的程序,就像在普通终端中一样。如果你想返回到主终端,可以按快捷键 ctrl+a+d。如果你想查看screen的状态,可以输入:

screen -r <screen_name>

撰写回答