实用的Linux命令-screen

我们经常要使用ssh进行远程连接Linux服务器,而且希望程序在我们关闭ssh连接后,能够继续程序,我们一般会使用nohup启动程序,那nohup是怎么做到的呢?

一般情况步,当远程连接终端与服务器的网络连接断开后,操作系统会向正在运行的程序发送SIGHUP信号(即挂断信号),而这个情况会使程序退出。但当使用nohup执行其它命令时,nohup会忽略掉SIGHUP信号,这样就使得程序可以在连接断开后继续执行。

nohup既然可以实现我们的需求,那为什么我们还要介绍screen呢?

因为有时,我们需要有这样一种需求:比如第一天我们进入到了相关目录,并启动了相关程序,我们想第二天来的时候继续回到这个目录,并查看程序运行状态。这时使用nohup就达不到我们的需求了。

screen就可以达到我们的要求。

首先,我们到达相关目录后,使用screen –S ?screen-name,来建立一个名为screen-name的screen。

然后启动,相关程序,程序运行起来后,使用ctrl+A,然后再按下D,即可离开screen,回到建立screen时的目录。

那我如何再回到刚才的screen呢?

我们可以使用screen –ls查看系统中现有的screen,对于同名的screen,前面会有不同的数字id(其实就是子界面的pid)来标识。

我们找到了自己想要的screen-name的id,然后怎么进入呢?如果当前的screen-name是detached,那么说明现在没有其它人连接,直接使用screen –r id恢复就可以了;如果当前显示为attached,说明现在有人连接,那如果需要强制恢复到你这边的话,可以使用screen –d –r id。

在一个screen下可以建立多个窗口,这里就不做介绍了。

以上就是一个最常用的场景。当然screen还有其它命令,这里我们简单介绍一下。

    screen –S:新建screenscreen –r:恢复screenscreen –d:强制断开其它正在运行的screenscreen –list(或-ls):列出现有的screen会话screen –v:显示screen版本screen –wipe:同list,但会删除那些无法连接的会话C-a d:暂时断开screen会话C-a k:杀掉当前窗口C-a 0..9:切换到窗口0…9C-a p:切换到前一个窗口
实用的Linux命令-screen

相关文章:

你感兴趣的文章:

标签云: