在服务器上后台运行python脚本并获得脚本输出

在服务器上后台运行python脚本并获得脚本输出,python,python-3.x,bash,shell,Python,Python 3.x,Bash,Shell,因此,我需要在服务器上运行python脚本,但我希望脚本将其输出的内容输出到文件中,这样我就可以在完成后检查它执行了什么。但是,如果服务器的ssh隧道被中断或关闭,我还需要脚本继续运行。以下是我所知道的: python3 run.py>>out.txt 将正确输出 nohup python3 run.py 将正确输出,并且不会被中断。它还将输出到nohup.out,但不会在当前会话的后台运行(从而阻止我执行任何其他操作) 所以我想 nohup python3 run.py>>out.txt& 会

因此,我需要在服务器上运行python脚本,但我希望脚本将其输出的内容输出到文件中,这样我就可以在完成后检查它执行了什么。但是,如果服务器的ssh隧道被中断或关闭,我还需要脚本继续运行。以下是我所知道的:

python3 run.py>>out.txt

将正确输出

nohup python3 run.py

将正确输出,并且不会被中断。它还将输出到nohup.out,但不会在当前会话的后台运行(从而阻止我执行任何其他操作)

所以我想

nohup python3 run.py>>out.txt&

会对我有用,但不会。
我尝试了我想要的不同组合,但就是无法让它工作。。。 一旦我添加了
&
,文件的输出就会停止。我不知道为什么。
感谢您的帮助

这里已经回答了您要查找的内容


您需要使用
tmux
使其在后台运行

最简单的方法是使用
&
在后台运行命令。然后写下:

disown -a

对于任何遇到类似问题的人来说,我想nohup和python输出缓冲都有问题。
请参阅:

但解决办法是:

nohup python3-u run.py>>out.txt&


(答案由@VPfB提供)

问题是,一旦我使用
&
脚本就不再向文件中输出任何内容,尽管这与我的要求不完全相同。我可以在ssh会话结束后运行它。这是我脚本的输出问题,您可能遇到了这个缓冲问题:@VPfB aha!谢谢你,这似乎就是问题所在!有趣的问题,但很高兴它解决了。我很高兴我能帮上忙。主持人现在几乎肯定会将此作为副本关闭。无论如何,欢迎来到SO。这回答了你的问题吗?