在Amazon EC2上让Python脚本无限运行
我有一个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>