小话题:
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
Ctrl+a,d之后或screen终端断了之后,screen进程的父进程就会变成init。与本终端脱离父子关系。因此在终端结束之后screen中的程序不会中断。进程
而在用一个新的终端链接screen -r ID 打开之后,screen会与父进程是init的screen通讯(本身瞎猜的)。get
一个小故障: 在模拟终端断线的时候,再从新连上之后能够查看到SCREEN还在运行,但以前的ssh终端尚未断开,因此screen仍是以前sshd的子进程。这样的状况不能从新链接上screen。it
能够手动的把以前的sshd进程关闭,再从新链接screen便可。上图:io
查看scrren信息,并链接,被提示screen已附加进程。编译
咱们查看一下如今的进程树。
终端断开了,可是终端的sshd进程却没有断开,而之上的screen也没有转移父进程。
查看一下所在sshd的进程ID,半闭掉。
pstree -p 查看进程树并显示ID。
关闭之。
能够看到已经正常了。