screen
- 支持会话恢复
当我们开启screen后,只要screen进程没有终止,其内部运行的会话都可以恢复。网络连接中断临时,用户也可以进入开启的screen中,对中断的会话的进行控制(恢复或删除)。
通常的用法是在暂时离开的时候,让在screen中运行的会话保持正常运行并将Screen切换到后台。 - 支持多窗口
当使用screen时,可以开启多个窗口,让每个会话都独立运行到不同的窗口,并拥有各自的编号、名称等。用户可以通过这些编号及名称进入不同的窗口。 - 会话共享
Screen可以让一个或多个用户从不同终端登录一个会话,并共享会话。使用户登陆同一会话的用户看到同一会话内容。
同时它可以提供窗口访问权限的设置,对窗口进行密码保护。screen参数
1 2 3 4 5 6 7 8 9 10 11 12
-A 将所有的视窗都调整为目前终端机的大小 -d 将指定的screen作业离线 -h 指定视窗的缓冲区行数 -m 即使目前已在作业中的screen作业,仍强制建立新的screen作业 -r 恢复离线的screen作业 -R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业 -s 指定建立新视窗时,所要执行的shell -S 指定screen作业的名称 -v 显示版本信息 -x 恢复之前离线的screen作业 -ls或-list 显示目前所有的screen作业 -wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业
screen命令
-
自定义shell脚本启动一个进程
1 2 3 4 5 6
screen_name="ngrok" # 创建了一个名为 my_screen 的窗 screen -dmS $screen_name cmd="ngrok tcp 22"; screen -x -S $screen_name -p 0 -X stuff "$cmd" screen -x -S $screen_name -p 0 -X stuff '\n'
-
退出进程
1
screen -S session_name -X quit
其他
1 2 3 4 5 6 7 8 9 10 11 | C-a ? 显示所有键绑定信息 C-a w 显示所有窗口列表 C-a C-a 切换到之前显示的窗口 C-a c 创建一个新的运行shell的窗口并切换到该窗口 C-a n 切换到下一个窗口 C-a p 切换到前一个窗口(与C-a n相对) C-a 0..9 切换到窗口0..9 C-a a 发送 C-a到当前窗口 C-a d 暂时断开screen会话 C-a k 杀掉当前窗口 C-a [ 进入拷贝/回滚模式 |
退出screen
退出screen的作业时,有两种方式:
1 2 3 | Crtl + a +d 保存进程并退出作业(程序在screen中继续运行,screen -ls 可查看) Crtl + alt + a + d 进入后台运行进程 exit 退出作业和进程(程序终止,screen -ls 不可查看) |