使用screen实现在后台多shell独立运行程序
在服务器上搭建一些服务的时候,经常要用到screen命令。这是因为一般情况下我们只会开一个连接服务器的控制台,但是某些服务开启的时候需要占据一整个控制台,如果关闭了就会导致进程终止。这就成了类似单进程的效果。而screen命令就是为了能够在服务器上开启多个控制面板(screen),用以容纳不同的任务。
1、新建screen
可以直接输入screen 来打开一个带有默认名字的screen界面,也可以加上 -S 参数设置screen窗口的名字。然后系统就会切进当前的screen了。
上面第一个就是使用了-S参数命名的screen
2、查看当前有哪些screen
screen -ls
3、暂时离开当前screen
1)按下组合快捷键ctrl+a+d
,即可detach当前screen
2)screen -d
4、关闭和选择screen
恢复screen:screen -r <screen的pid>
离开screen: screen -d <screen的pid>
关闭screen: exit 或者 用快捷键ctrl+d
详细如下:
首先用screen -ls
查看你想要选的screen:
如果他的状态是Detached的,我们需要输入screen -r <screen的pid>
,来进入这个screen ,或者screen -rd <screen的名称>
;
如果他的状态是Attached的,我们就要输入 screen -d <screen的pid>
,来使他”Dettached”,然后再输入screen -r <screen的pid>
,来进入这个screen。(必须先detached,否则是进入去的)。
进入了你想要关闭的screen之后,就可以直接输入exit,或者Ctrl+d,来终止这个界面了。成功终止后,如果有其他处于Attached状态的screen界面,他就会跳到那个界面中,如果没有,他就会跳到默认界面上。
5、清除损坏的screen :
screen -wipe
如果由于某些情况导致一个screen的状态处于Dead(很可能是程序出错或者强行删除进程锁之类的。。),我们无法attached进去,那么我们只需要输入screen -wipe ,就可以删除这些进程了。