本文首发于我的个人博客:Suixin’s Blog
原文: https://suixinblog.cn/2018/11/screen.html 作者: Suixin
在日常的编码中肯定需要登录到远程Linux服务器,经常需要在上面运行一些需要很长时间才能完成的任务,如:传输文件、跑爬虫代码等,需要保证退出服务器的连接,该任务也不会终止掉。使用nohup
命令已经可以完成一些较为简单的任务(nohup:在Linux服务器后台跑程序),但真正的多会话管理还是要用到screen
命令。
一般的Linux系统都自带screen
命令,所以无需手动安装。
常用参数
-
-S
:后加作业名称新建一个screen作业; -
-ls
或-list
:列出目前的所有screen作业; -
-d
:后加作业名称远程使该作业离线; -
-r
:后加作业名称恢复该离线的作业; -
-wipe
:删除已经无法使用的作业。
快捷键
进入一个screen session后,可能你开始跑一些程序,这时不能在命令行输入任何东西,就需要使用快捷键来操作。这里所有的快捷键都是以Ctrl+A
开头的(Mac也是⌃+A
而不是⌘+A
)。
-
Ctrl+A+D
:detach当前session,会将当前的session任务放到后台执行,回到还没进入当前session的状态,即使断开远程连接session也不会中断(最常用); -
Ctrl+A+T
:在底线显示当前时间以及登入时间; -
Ctrl+A+K
:强行关闭当前的window; -
Ctrl+A+W
:显示所有window列表; -
Ctrl+A+X
:锁定当前window,需要用用户密码解锁。
经典使用方式
# 新建suixinPython作业
screen -S suixinPython
# 在新作业中运行长时间的代码
python test.py
# 使用快捷键detach当前session
⌃+A+D
# 退出ssh连接
exit
# 重新链接服务器
ssh root@……
# 恢复suixinPython会话
screen -r suixinPython
参考
https://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html