应用场景1:会话恢复,系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。会话恢复,只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。
应用场景2:会话共享,Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
yum install screen
screen -S [SESSION] 创建新screen会话
screen -x [SESSION] 加入screen会话
exit 退出并关闭screen会话
ctal+a,d 剥离当前会话
screen -ls 显示所有已经打开的screen会话
screen -r [SESSION] 恢复某screen会话
后台进程: screen:在开启一个子bash窗口,关闭父bash并不影响子bash
1.安装
[root@oldboy ~]# yum install screen -y
2.开启一个screen窗口,指定名称
[root@oldboy ~]# screen -S wget_mysql
3.在screen窗口中执行任务即可
[root@oldboy ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
4.平滑的退出screen,但不会终止screen中的任务 注意: 如果使用exit 才算真的关闭screen窗口
ctrl+a+d
5.查看当前正在运行的screen有哪些
[root@oldboy ~]# screen -ls
There is a screen on:
22058.wget_mysql (Detached)
1 Socket in /var/run/screen/S-root.
6.进入正在运行的screen
[root@oldboy ~]# screen -r wget_mysql
[root@oldboy ~]# screen -r 22058