如何在不保持ssh管道打开的情况下在Amazon EC2上运行脚本?

时间:2014-08-04 15:25:06

标签: amazon-web-services ssh amazon-ec2

我有一个脚本,用于将历史数据记录到Amazon Redshift实例中。该脚本可能需要运行很长时间,可能需要超过24小时才能运行完成。

我已经尝试过ssh-ing进入我的EC2实例并从那里运行脚本,但是几个小时后我离开我的笔记本电脑或关闭盖子并且管道坏了,在脚本运行完成之前停止脚本。

如何在我的EC2上运行脚本,然后再也不用担心它会过早地停止执行?

2 个答案:

答案 0 :(得分:3)

nohup yourshellcommandhere  &

将在后台运行,并且不要求您激活交互式ssh会话。

答案 1 :(得分:0)

与@johncorser一样,请使用Screen

您可以稍后注销并重新附加屏幕。 yum install screenapt-get install screen

然后输入screen。 它会给你一个虚拟的" shell,你可以" detatch"。

尝试: screen sleep 999 CTRL-a then d

您可以再次注销并重新登录,然后执行screen -r重新连接虚拟终端。

大多数屏幕的热键都以CTRL-a(小写字母a)开头,然后是一些字母。 如果您只想学习一个,请了解显示帮助屏幕的CTRL-a, ?并列出其他键。

另一个非常有用的热键:

CTRL-a, c:创建另一个虚拟终端

CTRL-a, n:遍历所有虚拟终端

记住CTRL-a, ?,然后尝试全部:)