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