通过ssh远程运行Python任务——如何退出登录?

3

我通过ssh运行一个Python脚本filename.py。一旦我登录到远程机器上,我会运行以下命令:

python filename.py &

然而,当我关闭终端时,Python 停止运行。为什么会这样?我以为在语句结尾加上 & 符号意味着程序仍在后台运行?

2个回答

6
使用 nohup 命令:
nohup python filename.py &

nohup [command] &可以在后台运行任务,并将您带回到shell。


附加信息, [nohup是一个POSIX命令,用于忽略HUP(挂起)信号。 HUP信号通常是终端警告依赖进程进行注销的方式。] (https://en.wikipedia.org/wiki/Nohup) - Joachim Isaksson
运行此命令后,我得到了以下响应: $ nohup:忽略输入并将输出附加到nohup.out - ShanZhengYang
默认情况下,nohup 的输出会被写入一个名为 nohup.out 的文件中。如果你想要观察它的运行,可以使用 tail -f nohup.out 命令。 - Alex Woolford
@AlexWoolford 谢谢 - ShanZhengYang

2

我对Python在shell中的使用还不是很熟悉,但在SSH相关环境中可以使用screen。

例如:

sudo apt-get install screen

screen -m

这将创建虚拟终端(tty)。
然后运行你的程序。
python prog.py &

希望这对您有所帮助,祝您拥有愉快的一天!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接