在通过 SSH 远程连接到服务器终端时,一般会用 nohup + & 将任务运行在后台,从而防止 SSH 断开后任务被一起中断。

对于这种需要把任务稳定运行在后台的需求,screen 是另外一种非常理想的工具,使用步骤如下:

一、创建分离式伪终端

$ screen -dmS <Session Name>

比如我想创建一个伪终端来跑 lotus 的守护进程:

$ screen -dmS lotus-daemon

二、查看伪终端列表

$ screen -list
There are screens on:
	955000.lotus-daemon	(Detached)
1 Sockets in /run/screens/S-herald.

三、进入伪终端

$ screen -r <Session Name>

比如我想进入名为 lotus-daemon 的伪终端:

$ screen -r lotus-daemon

四、退出伪终端

进入伪终端以后就可以执行需要的命令了,比如我要跑 lotus daemon:

$ lotus daemon

命令运行后,现在可以使用 ctrl + actrl + d 来断开伪终端。

可以重复上述二至四步重复的打开和退出伪终端。