离线跑代码
简单介绍
screen 是一个终端多路复用器,允许你在单个终端会话中运行多个终端会话,并在不同会话之间切换。使用 screen,即使关闭终端或发生断线,程序仍可以继续运行。
连接远程服务器后:
创建新会话
创建命名会话
screen -S <session_name>
例如,创建一个名为 test
的新会话:
screen -S test
创建未命名会话
screen
这将创建一个未命名的新会话。
分离会话
在 screen
会话中,你可以按 Ctrl-a
然后按 d
来分离(detach)会话。分离会话后,程序继续运行,但你返回到了原来的终端。
重新连接会话
列出所有会话
screen -ls
显示当前所有的 screen
会话。例如:
There are screens on:
12345.test (Detached)
67890.pts-0.hostname (Attached)
2 Sockets in /var/run/screen/S-username.
重新连接指定会话
screen -r <session_name>
或
screen -r <pid>
例如,重新连接名为 test
的会话:
screen -r test
或根据 PID 重新连接:
screen -r 12345
强制重新连接会话
如果会话已经附加到其他终端,可以使用 -d
和 -r
强制重新连接:
screen -d -r <session_name>
或
screen -d -r <pid>
关闭会话
要关闭 screen
会话,可以在会话中按 Ctrl-d
或输入 exit
命令。
在会话中使用 screen
命令
进入 screen
会话后,可以使用以下快捷键:
- 创建新窗口:
Ctrl-a
然后c
- 切换到下一个窗口:
Ctrl-a
然后n
- 切换到上一个窗口:
Ctrl-a
然后p
- 列出所有窗口:
Ctrl-a
然后"
(双引号) - 命名当前窗口:
Ctrl-a
然后A
- 强制重新连接:
Ctrl-a
然后r
- 分离会话:
Ctrl-a
然后d
- 关闭当前窗口:
Ctrl-a
然后k
示例流程
- 创建一个新会话:
screen -S test
- 在会话中运行一个长时间运行的命令:
python long_running_script.py
- 分离会话:
按 Ctrl-a
然后 d
。
- 重新连接会话:
列出所有会话:
screen -ls
重新连接会话:
screen -r test
- 关闭会话:
在会话中按 Ctrl-d
或输入 exit
。
通过使用 screen
,你可以更好地管理和控制终端会话,尤其是在需要长时间运行命令或保持会话活动的情况下。