即使在关闭本地计算机后,如何在 AWS EC2 上创建进程 运行?
How to make a process run on AWS EC2 even after closing the local machine?
我有一个脚本,大约需要 10-15 个小时才能完成。我想在 EC2 实例上 运行 它并在说 10 小时后永远停止该过程。
方法--
CRONTAB
- 如果我为进程创建一个 cronjob。如何保证运行一生只用一次,10小时后删除?
您需要打开一个 screen 会话。您可以通过在 bash 提示符中键入 screen
来完成此操作。一旦你在你的命令中解雇,键入 Ctrl-a
然后是 d
。这将分离您的屏幕会话。但是,您 运行 的脚本将继续 运行。
现在,您可以断开与 ssh 会话的连接。重新登录后,您可以通过输入 screen -r
来 resume
您的会话。这是假设您只有一个 detached
会话。如果您有多个,则必须输入要附加回的会话的 pid。
要查看会话的pid
,您可以这样做:
ps aux | grep screen
这将列出当前 运行ning 屏幕进程。示例输出为:
dhanush 1327 0.0 0.0 2443312 56 s000 S+ 3Sep15 0:00.99 screen -r server -p server
dhanush 79037 0.0 0.0 2432784 600 s008 S+ 5:03PM 0:00.00 grep screen
此处相关屏幕进程的pid
为1327
。
第二行属于搜索关键字screen
本身的grep
命令。
tmux 是另一种选择。
我有一个脚本,大约需要 10-15 个小时才能完成。我想在 EC2 实例上 运行 它并在说 10 小时后永远停止该过程。
方法--
CRONTAB
- 如果我为进程创建一个 cronjob。如何保证运行一生只用一次,10小时后删除?
您需要打开一个 screen 会话。您可以通过在 bash 提示符中键入 screen
来完成此操作。一旦你在你的命令中解雇,键入 Ctrl-a
然后是 d
。这将分离您的屏幕会话。但是,您 运行 的脚本将继续 运行。
现在,您可以断开与 ssh 会话的连接。重新登录后,您可以通过输入 screen -r
来 resume
您的会话。这是假设您只有一个 detached
会话。如果您有多个,则必须输入要附加回的会话的 pid。
要查看会话的pid
,您可以这样做:
ps aux | grep screen
这将列出当前 运行ning 屏幕进程。示例输出为:
dhanush 1327 0.0 0.0 2443312 56 s000 S+ 3Sep15 0:00.99 screen -r server -p server
dhanush 79037 0.0 0.0 2432784 600 s008 S+ 5:03PM 0:00.00 grep screen
此处相关屏幕进程的pid
为1327
。
第二行属于搜索关键字screen
本身的grep
命令。
tmux 是另一种选择。