linux 中退出ssh后,将中断正在执行的命令,就算将任务放到后台执行,下次再进入ssh的时候,也看不到过程中输出的信息。
screen通过模拟多窗口,当你退出ssh时,并不影响在screen中执行的任务,下次登陆ssh,只需要切换到指定的screen窗口,即可看到任务执行的过程和结果。
玩过windows服务器的可以体会这个的方便。
centos 通过yum install screen 直接安装。
创建一个名为windows1的screen 窗口:
]# screen -S windows1
进入到一个新的跟ssh一模一样的界面,在里面执行任何命令都一样。比如
]# ping www.csdn.net
就会一直PING,这时候按 ctrl+a 然后再按d,就可以“最小化”这个窗口,回到之前的ssh界面。
查看当前有哪些窗口
]# screen -ls
There is a screen on:
24502.windows1 (Detached)
1 Socket in /var/run/screen/S-root.
可以看到后台有一个名为windows1的窗口,这时候你直接可以关闭ssh,再登陆,执行screen -ls还在。
打开窗口
]# screen -r windows1
或者
]# screen -r 24502
进入windows1 窗口,可以看到ping还在执行,以及过程。
按ctrl+c终止当前进程
直接按ctrl+d可以结束当前窗口并退回到ssh。
如果有多个窗口需要结束,可以直接 killall screen