如何在Linux中将Python脚本的输出带到前台/后台?

时间:2017-07-21 07:11:29

标签: linux ssh

我在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')

2 个答案:

答案 0 :(得分:1)

将任务保留在后台,并使用tail -f nohup.out

答案 1 :(得分:1)

您可以使用tmuxscreen(取决于系统上可用的程序)在终端多路复用器中运行程序,从中分离并关闭连接。当您返回时,您可以附加到同一会话并看到您的程序正在运行。

tmux

$ tmux

# run your program in the tmux shell:
$ python3 myscript.py

使用Ctrl + b然后d

从tmux会话中分离

您现在可以安全地退出ssh会话

下次登录时,只需tmux attach即可看到脚本正在运行。

<强>增加: 对于screen,分离命令为Ctrl + ad,使用screen -r重新附加。