在服务器上运行 Python 程序并让它在【后台】持续运行
在服务器上运行 Python 程序并让它在后台持续运行,
即使关闭 SSH 连接,也不会终止
1. 创建一个新的 tmux
会话
tmux
是一个终端多路复用器:
tmux new -s my_session # 创建一个新的 tmux 会话
-
tmux new:创建一个新的 tmux 会话。
-
-s my_session:为会话命名为 my_session,方便之后恢复。
-
你现在进入了一个新的 tmux 终端,就像打开了一个新的 SSH 终端一样。
2. 在 tmux
会话中运行 Python 程序
python data_process_tem.py
- 这将在 tmux 内部运行你的 Python 代码。
- 由于 tmux 会话是独立的,即使你关闭 SSH,程序仍然会运行。
3. 断开 tmux
会话
- 按Ctrl + B
- 进入 tmux 命令模式
- 按D
- (Detach):断开当前会话,Python 仍在后台运行
- 此时你可以安全关闭 SSH 连接,程序仍然在服务器上运行
4. 重新连接到 tmux
会话
如果你重新登录服务器,并想恢复之前的会话:
tmux attach -t my_session
- tmux attach:重新连接到 tmux 会话。
- -t my_session:指定连接的会话名称。
- 你会看到 Python 代码仍然在运行!
拓展
查看所有 tmux 会话
列出所有正在运行的 tmux 会话:
tmux ls
关闭 tmux 会话
如果你想彻底关闭 tmux 会话:
tmux kill-session -t my_session
- tmux kill-session:关闭指定的 tmux 会话
杀死所有 tmux 会话
tmux kill-server
- 这会杀死所有 tmux 会话,慎用!
附:
使用 tmux 恢复会话时,中间输出的内容会保留,不会丢失
原因
tmux 本质上是一个终端复用器,它在后台持续运行一个虚拟终端,即使 SSH 断开,终端的状态(包括滚动历史记录)仍然会被保存。因此,当你重新连接到 tmux 会话时,之前的输出内容仍然可见,不像 nohup 那样需要写入日志文件。