Linux screen多窗口任务管理
简介
Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。也就是我们登录Linux shell之后,运行screen命令,打开一个新窗口,接下来的任务在screen中运行,这样即使掉线了,任务也还在.
screen的功能大体有三个:
只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
安装方式
yum install screen
因为CentOS 8上移除了screen,需要提前安装epel后安装screen执行:yum install screen
安装epel:
yum install epel-release
apt-get install screen
使用方式
创建screen任务窗口,screen -S 名称
screen -S name
常用命令
1、帮助
screen -help
2、查看screen任务列表
screen -ls
3、恢复某个任务 screen -r 名称
screen -r name
如果因为screen异常退出可能会提示状态为Attached,可以执行:screen -D -r name
进行恢复
4、中断screen
你可以按下 Ctrl+d ,或者在命令行中使用 exit
命令
参数说明
-A 将所有的视窗都调整为目前终端机的大小。
-d <任务名称> 将指定的screen任务离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在任务中的screen任务,仍强制建立新的screen任务。
-r <任务名称> 恢复离线的screen任务。
-R 先试图恢复离线的任务。若找不到离线的任务,即建立新的screen任务。
-s 指定建立新视窗时,所要执行的shell。
-S <任务名称> 指定screen任务的名称。
-v 显示版本信息。
-x 恢复之前离线的screen任务。
-ls或–list 显示目前所有的screen任务。
-wipe 检查目前所有的screen任务,并删除已经无法使用的screen任务。
常用快捷键
ctrl + a,d #暂离当前会话
ctrl + a,c #在当前screen会话中创建一个子会话
ctrl + a,w #子会话列表
ctrl + a,p #上一个子会话
ctrl + a,n #下一个子会话
ctrl + a,0-9 #在第0窗口至第9子会话间切换