使用screen在Linux系统上保持程序后台运行

为什么要用screen

我们使用SSH终端远程登录到Linux服务器时,如果需要运行一些需要很长时间才能完成的任务,在此期间就不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。这时,我们可以用screen命令解决这个问题。
screen命令可以实现当前窗口与任务分离,我们即使离线了,服务器仍在后台运行任务。当我们重新登录服务器,可以读取窗口线程,重新连接任务窗口。

常用命令


1.安装
sudo yum install screen
2.新建窗口
screen -S name #新建一个名字为name的窗口,并进入到该窗口中
3.查看正在运行的窗口
screen -ls #列出窗口列表
4.回到会话窗口

有两种方式回到会话窗口,第一种是通过线程ID,线程ID可以使用screen -ls查看到。

screen -r 线程ID(纯数字)

第二种是通过窗口名称

screen -r 窗口名称
5.退出会话窗口回到原始终端

当我们在窗口中执行好我们要运行的程序后,想要回到原始终端继续执行其他的命令,但想要保持窗口中的程序继续运行,则通过以下快捷键,可以回到原始终端:

Control + A + D
6.杀死会话窗口

杀死会话窗口后,窗口中运行的程序也将一并停止。

  • 在窗口外杀死会话窗口的命令如下,线程ID通过screen -ls命令查看。
    kill -9 线程ID(纯数字)
  • 在窗口内杀死当前窗口的快捷键如下:
    Control + A + K
7.清除死亡的窗口

当窗口被杀死后,再用screen -ls可以看到该窗口后面会显示dead字样,说明窗口已经死了,但是仍在占用空间。这时执行以下命令可以清除所有已经死亡的窗口:

screen -wipe #清除所有已经死亡的窗口

AnonyEast

一个爱折腾的技术萌新

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐