在树莓派上独立运行脚本

poi*_*asd 1 linux ssh debian terminal python

我有几个 python 程序,例如一个检查 Collat​​z 猜想是否适用于给定数字,并将输出写入文件(它在 Raspberry Pi 上运行)的程序。

虽然我知道它并没有被反驳到高达 1000 亿或什么的,但我只是想运行它以进行编程练习。虽然我可以将它设置为在 RPi 启动时启动,并通过 ssh 会话启动它,但我使用 Pi 的主要原因是它可以达到 10 亿之类的数字,同时即使性能也不会消耗太多电量不实用。

当我通过键入 SSH 会话启动它时python col.py,如果我终止会话,它会停止运行。如何使用 SSH 启动脚本,以便在我终止会话时它不会停止(一直持续到它结束或 RPi 关闭)?

Gia*_*968 5

使用screen很好,但nohupwith 也&应该工作。

因此,在您的情况下,只需像这样运行命令:

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&组合是将无人值守任务作为独立后台进程运行的最简单、最常用的方法。