标签:screen
小话题:
如果在我们编译软件的时候,终端实然断了怎么办,按理论来说,在此终端下的程序都会结束。编译了老半天,白忙活了。那么可以用screen程序。
screen 模拟多个虚拟窗口,并且screen模拟的终端断了以后,screen的终端不会退出,程序继续。
screen 打开新的screen虚拟界面
也可以隐藏打开的screen终端,返回原来的终端,当然是原终端没有断线的情况下。
Ctrl+a,再按一下ctrl+d。或者直接ctrl+a,d。 按一下a,再按一下d。
想要返回screen终端,先查看一下各screen终端的ID:screen -ls
打开screen终端:screen -r Screen_ID
只有一个screen终端的情况,直接用screen -r就可以打开。
Ctrl+a,d以后或screen终端断了以后,screen进程的父进程就会变成init。与本终端脱离父子关系。所以在终端结束以后screen中的程序不会中断。
而在用一个新的终端连接screen -r ID 打开以后,screen会与父进程是init的screen通信(自己瞎猜的)。
一个小故障: 在模拟终端断线的时候,再重新连上以后可以查看到SCREEN还在运行,但之前的ssh终端还没有断开,所以screen还是之前sshd的子进程。这样的情况不能重新连接上screen。
可以手动的把之前的sshd进程关闭,再重新连接screen即可。上图:
查看scrren信息,并连接,被提示screen已附加进程。
我们查看一下现在的进程树。
终端断开了,但是终端的sshd进程却没有断开,而之上的screen也没有转移父进程。
查看一下所在sshd的进程ID,半闭掉。
pstree -p 查看进程树并显示ID。
关闭之。
可以看到已经正常了。
本文出自 “大蕃茄” 博客,请务必保留此出处http://fanqie.blog.51cto.com/9382669/1730685
标签:screen
原文地址:http://fanqie.blog.51cto.com/9382669/1730685