文章开始
文章结尾
Screen 是一个终端多路复用器,是一种软件应用程序,可用于多路复用多个虚拟控制台,允许用户在单个终端窗口内访问多个单独的登录会话,或者从终端分离和重新附加会话。它对于从命令行界面处理多个程序以及将程序与启动该程序的 Unix shell 会话分开非常有用,特别是这样远程进程即使在用户断开连接时也能继续运行。
Screen 可以被认为是图形窗口管理器的文本版本,或者作为将虚拟终端放入任何登录会话的一种方式。它是一个允许多个文本程序同时运行的包装器,并提供允许用户在单个界面中高效使用程序的功能。这可以实现以下功能:持久性、多窗口和会话共享。当到终端的网络连接不可靠时,通常会使用 Screen,因为断开的网络连接通常会终止用户正在运行的所有程序(登录会话的子进程),这是由于会话结束并发送 “挂断” 信号 (SIGHUP ) ) 到所有子进程。在屏幕下运行应用程序意味着会话不会终止 - 只有现已失效的终端会分离 - 因此应用程序甚至不知道终端已分离,并允许用户稍后重新连接会话并从他们离开的地方继续工作离开。说人话就是:在 Screen 创建的窗口,运行任务,不会被系统杀死,即使退出 SSH 连接,任务也会继续运行。再直白一点就是:Screen 窗口运行任务不杀后台。
首先,升级一下系统:
yum -y update #centos系统
apt update #Debian/Ubuntu系统开始安装:
yum install screen #centos系统
apt-get install screen #Debian/Ubuntu系统常用的 screen 命令:
screen -S yourname #新建一个叫yourname的session
screen -ls(或者screen -list) #列出当前所有的session
screen -r yourname #回到yourname这个session
screen -d yourname #远程detach某个session
screen -d -r yourname #结束当前session并回到yourname这个sessionscreen 参数详解:
-A #将所有的视窗都调整为目前终端机的大小。
-d <作业名称> #将指定的screen作业离线。
-h <行数> #指定视窗的缓冲区行数。
-m #即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> #恢复离线的screen作业。
-R #先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s #指定建立新视窗时,所要执行的shell。
-S <作业名称> #指定screen作业的名称。
-v #显示版本信息。
-x #恢复之前离线的screen作业。
-ls或--list #显示目前所有的screen作业。
-wipe #检查目前所有的screen作业,并删除已经无法使用的screen作业。