我在AWS(Amazon Linux AMI)上运行Python脚本。该脚本旨在24/7运行并打印到解释器或命令终端。
它还处于开发阶段,所以我想查看它是如何表现的,或者是否由于错误而停止了。但是,我希望能够在不中断脚本的情况下关闭我的ssh连接或关闭本地计算机,然后ssh回来并实时查看。
首先我用过:
[me@aws-x.x.x.x dir]$ nohup python3 myscript.py &
用于关闭ssh连接,返回并看到它仍在运行,然后将所有打印语句写入nohup.out。
有没有办法让我把它带到前台并实时查看打印语句,然后将其发送回后台以断开与ssh的连接而不中断程序?
代码具有一般形式:
import time
count = 0
while count < 100000:
print('Im working!')
time.sleep(10)
count += 1
print('All finished')
答案 0 :(得分:1)
将任务保留在后台,并使用tail -f nohup.out
答案 1 :(得分:1)
您可以使用tmux
或screen
(取决于系统上可用的程序)在终端多路复用器中运行程序,从中分离并关闭连接。当您返回时,您可以附加到同一会话并看到您的程序正在运行。
tmux
$ tmux
# run your program in the tmux shell:
$ python3 myscript.py
使用Ctrl + b
然后d
您现在可以安全地退出ssh会话
下次登录时,只需tmux attach
即可看到脚本正在运行。
<强>增加:强>
对于screen
,分离命令为Ctrl + a
和d
,使用screen -r
重新附加。