我有几个 python 程序,例如一个检查 Collatz 猜想是否适用于给定数字的程序,并将输出写入文件(它在 Raspberry Pi 上运行)。
虽然我知道它还没有被证明是错误的,比如一千万亿,但我只是想运行它来进行编程练习。虽然我可以将其设置为在 RPi 启动时启动,并通过 ssh 会话启动它,但我使用 Pi 的主要原因是它可以达到 10 亿这样的数字,同时即使性能不实用也不会消耗太多电量。
当我通过键入 SSH 会话启动它时python col.py
,如果我终止会话,它会停止运行。如何使用 SSH 启动脚本,以便它在我终止会话时不会停止(继续运行直到结束或 RPi 关闭)?
答案1
答案2
因此,对于你的情况,只需运行如下命令:
nohup python col.py &
为了让您了解每个项目的工作原理:
nohup
:它代表“不挂断”,这意味着即使您的终端会话断开连接,连接到该nohup
命令的进程仍将继续运行。&
:此上下文中的 “&” 符号告诉 shell 将其前面的命令作为后台进程运行。
如果你只是运行这个:
nohup python col.py
它python col.py
会运行,但不是作为后台进程;它会作为前台进程将你锁定在终端中。如果你运行这个:
python col.py &
它将python col.py
在后台运行,但您注销后python col.py
命令将终止。
执行nohup
和&
组合是将无人值守任务作为独立后台进程运行的最简单、最常用的方法。