如何使用Linux命令screen实现后台运行程序
但是又不想让它们占用当前终端的界面或者在SSH会话断开之后就停止运行。① 直接在当前terminal上启动输入以下指令即可创建一个新的screen窗口:
- 本文目录导读:
- 1、Step 1 – 安装Screen
- 2、Step 2 – 启动新窗口
- 3、Step 3 – 运行程序
- 4、Step 4 – 断开和重新连接
- 5、Step 5 – 管理和删除
在Linux系统中,我们经常需要运行一些耗时长的程序,但是又不想让它们占用当前终端的界面或者在SSH会话断开之后就停止运行。这时候,就需要使用到一个非常实用的命令——screen。
Screen是一个终端多路复用工具,它可以在同一终端下开启多个窗口,并且每个窗口都相当于独立的控制台,可以执行各种操作。最重要的是,在离开当前SSH会话或关闭当前终端之后,这些窗口中正在进行的任务仍然会持续执行。
那么接下来我们就来详细介绍如何使用screen命令实现后台运行程序:
Step 1 – 安装Screen
首先,在大部分Linux发行版中都已经默认安装了Screen。但如果你不确定是否安装了Screen或者想要更新版本,则可以通过以下命令进行安装:
“`
sudo apt-get install screen
Step 2 – 启动新窗口
启动新窗口有两种方法:直接在当前terminal上启动、新建一个terminal再启动。
① 直接在当前terminal上启动
输入以下指令即可创建一个新的screen窗口:
screen
此时,会出现一个新的窗口。在这个窗口中可以执行任意命令,并且当前终端上的其他操作不会受到影响。
② 新建一个terminal再启动
如果你想在新terminal中启动screen,可以使用以下命令:
screen -S
其中,-S参数指定了这个Screen会话的名称。在后面我们会介绍到如何利用这个名称来管理Screen。
Step 3 – 运行程序
当你进入了一个Screen窗口之后,就可以像平常一样执行各种命令了。如果要运行某个耗时长的程序并且希望它在离开当前SSH会话或关闭当前终端之后仍然能够持续运行,则需要使用以下指令:
nohup &
其中,代表需要运行的程序名或者命令。&符号表示将该任务放到后台运行,并且不受当前Shell环境影响。
例如:
nohup python test.py &
这条指令将test.py文件以python解释器方式运行,并且放到后台持续执行。
Step 4 – 断开和重新连接
当你需要退出SSH连接或者关闭当前终端时,请注意不要直接使用exit等关键字退出,否则正在进行中的任务也将被杀死。
正确的做法是:
① 使用Ctrl+A,然后按下D键来暂时断开当前Screen会话。
② 当你需要恢复之前的Screen会话时,在终端中输入以下命令:
screen -r
其中,-r参数表示重新连接到之前的Screen会话。如果该会话没有指定名称,则可以使用以下命令直接恢复最新的一个Screen窗口:
screen -r
Step 5 – 管理和删除
当你创建了多个Screen窗口或者使用了-S参数指定了名称之后,就可以通过以下命令来管理和删除这些窗口:
① 列出所有正在运行的Screen会话
screen -ls
该命令将列出当前所有正在运行的Screen窗口,并且显示它们各自对应的编号、PID、状态以及名称等信息。
② 删除某个特定名称或编号对应的Session
如果需要关闭某个特定名称或编号对应的Session,则可以使用以下命令:
删除指定名字为session1 的 Screen 会话
“`bash
screen -S session1 -X quit
# 或者
# screen -S -X quit
其中-X选项表示向该屏幕发送一个控制字符序列。quit代表退出当前屏幕。
本文主要介绍了如何使用Linux中非常实用而强大的screen命令实现后台运行程序。通过使用该命令,我们可以在同一终端下开启多个窗口,并且在离开当前SSH会话或关闭当前终端之后,这些窗口中正在进行的任务仍然会持续执行。同时,我们还介绍了如何启动新窗口、运行程序、断开和重新连接以及管理和删除Screen会话。
希望本文能够对大家有所帮助!