screen 可以创建“虚拟终端”,让这些“虚拟终端”一直运行,即使退出了登录(或网络断开),程序也能在后台继续保持运行。这样就能够在后台运行一个长时间运行的任务,并且在需要时可以随时登录进系统查看任务的执行进度、输出结果。
# 安装 sudo apt-get install screen # 开启一个虚拟会话(并且进入) screen -S <会话名称> # 在虚拟会话中,可以随意执行命令 # 离开虚拟会话:Ctrl + A + D # 查看后台运行的虚拟会话 screen -ls # 返回虚拟会话 screen -r <会话名称或会话ID> # 关闭虚拟会话:在虚拟会话内部exit # 执行“一次性指令” # -d -m:不进入创建的会话,即“开启即分离”;脚本自动后台执行。 # -S <会话名称>:可选,可以指定会话名称。 # <要执行的命令>:可以是任意脚本、可执行文件或命令。 # 如:screen -dmS mytask python my_long_script.py screen -dmS <会话名称> <要执行的命令>
AI:
和nohup对比:screen 与 nohup 是两种常见的后台运行方式,功能并不冲突。简单场景下只需使用 nohup 即可,想要交互式查看任务执行过程、随时 attach/detach,则推荐使用 screen(或类似工具 tmux)。