在Linux系统中,screen
命令是一个非常有用的工具,它允许你启动一个虚拟终端会话,并在其中运行程序。即使你断开了SSH连接或关闭了终端,这个会话和其中运行的程序也会继续在后台运行。以下是如何使用 screen
来实现这一点的基本步骤:
-
安装 Screen(如果尚未安装):
在大多数Linux发行版中,screen
可能已经预装了。如果没有,你可以通过包管理器来安装它。例如,在Debian或Ubuntu上,你可以使用以下命令:sudo apt-get install screen
-
启动 Screen 会话:
要启动一个新的Screen会话,只需输入screen
命令。这将开启一个新的会话,并带你进入一个新的shell。screen
-
在 Screen 会话中运行你的程序:
在screen会话中,你可以像在普通终端中一样运行任何程序。例如,如果你想在后台运行一个名为my_script.sh
的脚本,只需在screen会话中运行它:./my_script.sh
-
分离 Screen 会话:
当你的程序在运行时,你可以从screen会话中“分离”,使程序继续在后台运行。要做到这一点,同时按下Ctrl
+A
,然后按D
。这会将你带回到原始的shell,而screen会话和其中的程序会在后台继续运行。 -
重新连接到 Screen 会话:
要重新连接到一个已经存在的screen会话,可以使用以下命令:screen -r
如果有多个screen会话在运行,你可以列出所有会话并选择一个来重新连接:
screen -ls screen -r [会话号]
-
关闭 Screen 会话:
当你完成了在screen会话中运行的程序,可以通过正常退出shell(例如输入exit
或使用Ctrl
+D
)来结束会话。如果需要强制关闭会话,可以使用以下命令:screen -X -S [会话号] quit
假设你有一个Python脚本,名为example.py
,你希望它在后台持续运行。我们将使用screen
命令来实现这一目标。
以下是详细的步骤和示例:
-
安装 Screen(如果尚未安装):
在Debian或Ubuntu上,你可以使用以下命令安装screen:sudo apt-get install screen
-
创建一个 Python 脚本:
假设你的Python脚本是一个简单的无限循环,打印当前时间。使用你喜欢的文本编辑器创建example.py
:import time while True: print("当前时间:", time.ctime()) time.sleep(10)
-
启动 Screen 会话:
在终端中输入screen
命令来启动一个新的screen会话:screen
-
在 Screen 会话中运行你的 Python 脚本:
在screen会话中,切换到脚本所在的目录,并运行脚本:python3 example.py
-
分离 Screen 会话:
当脚本开始运行后,你可以从screen会话中分离出来,让脚本继续在后台运行。同时按下Ctrl
+A
,然后按D
。 -
查看 Screen 会话列表:
如果你想看看哪些screen会话在运行,可以用以下命令:screen -ls
-
重新连接到特定的 Screen 会话:
如果你有多个screen会话在运行,你可以通过会话编号来重新连接到特定的会话。比如:screen -r [会话号]
注意调用的时候没有[]
screen -r xxxxx
- 关闭 Screen 会话:
当你完成工作并想要停止脚本时,重新连接到对应的screen会话。然后,你可以通过在Python脚本运行的终端中输入Ctrl
+C
来停止脚本。接着,退出screen会话,只需输入exit
或者按Ctrl
+D
。
这样,你的Python脚本将在一个screen会话中在后台运行,即使你断开SSH连接或关闭终端,它也会继续运行。通过使用screen
,你可以轻松地管理在后台运行的长期或持续的进程。