screen的使用和小故障

小话题:
ssh


若是在咱们编译软件的时候,终端实然断了怎么办,按理论来讲,在此终端下的程序都会结束。编译了老半天,白忙活了。那么能够用screen程序。ide

screen 模拟多个虚拟窗口,而且screen模拟的终端断了之后,screen的终端不会退出,程序继续。
screen 打开新的screen虚拟界面
也能够隐藏打开的screen终端,返回原来的终端,固然是原终端没有断线的状况下。spa

Ctrl+a,再按一下ctrl+d。或者直接ctrl+a,d。 按一下a,再按一下d。3d


想要返回screen终端,先查看一下各screen终端的ID:screen -ls
打开screen终端:screen -r Screen_ID
只有一个screen终端的状况,直接用screen -r就能够打开。blog

wKioL1aCb-qRque_AABvzV3PbsU471.jpg

Ctrl+a,d之后或screen终端断了之后,screen进程的父进程就会变成init。与本终端脱离父子关系。因此在终端结束之后screen中的程序不会中断。进程

wKioL1aCb-WBHpPQAADMquh_zRQ914.jpg


而在用一个新的终端链接screen -r ID  打开之后,screen会与父进程是init的screen通讯(本身瞎猜的)。get

wKiom1aCb8eRoz22AADWQHZrC48378.jpg


一个小故障: 在模拟终端断线的时候,再从新连上之后能够查看到SCREEN还在运行,但以前的ssh终端尚未断开,因此screen仍是以前sshd的子进程。这样的状况不能从新链接上screen。it

能够手动的把以前的sshd进程关闭,再从新链接screen便可。上图:io

查看scrren信息,并链接,被提示screen已附加进程。编译

wKiom1aGShmxO_5zAABhWcWWhuE192.jpg

咱们查看一下如今的进程树。

wKiom1aGSnvxAZ26AADq4HQDaCc546.jpg

终端断开了,可是终端的sshd进程却没有断开,而之上的screen也没有转移父进程。

查看一下所在sshd的进程ID,半闭掉。

pstree -p 查看进程树并显示ID。

wKiom1aGSyfy7dIhAACCgn34t6U984.jpg

关闭之。

wKioL1aGS7zz_dCDAADzd7AnEfU458.jpg

wKiom1aGTCWSYfqmAAAyaA4sTXc623.jpg

能够看到已经正常了。

相关文章
相关标签/搜索