VPS 脚本不中断运行教程:Linux screen 保持后台执行与日志保存
简介
在使用 VPS 执行脚本进行测速、UnixBench 测试或其他长时间任务时,常常遇到一个问题——SSH 连接一旦断开,正在运行的脚本会被中断,导致任务失败。这时,如何确保 VPS 脚本不中断运行,即使 SSH 会话断开,也能保持任务继续进行呢?在本教程中,我们将详细介绍如何使用 Linux screen 工具 实现 VPS 脚本后台运行,确保任务不中断,并能够方便地保存运行日志。
screen 工具的作用
screen
是 Linux 下的一个终端多路复用工具,可以让你:
- 在 后台运行任务,即使 SSH 断线也不影响。
- 重新连接 到之前的任务会话。
- 保存日志,方便任务完成后查看结果。
- 同时运行多个脚本会话,互不干扰。
为什么 SSH 断开会导致脚本中断?
当你通过 SSH 连接到 VPS 时,所有进程都依赖于这个会话。一旦 SSH 连接断开,系统会自动关闭当前会话内的所有进程,包括正在运行的脚本。这是导致你在运行如 测速脚本、UnixBench 测试等任务时,断开 SSH 后任务丢失的根本原因。
使用 Linux screen 工具保持脚本不中断
screen 是 Linux 下的一个终端多路复用工具,能够帮助你解决 SSH 会话断开导致脚本中断的问题。通过 screen,你可以让脚本在后台持续运行,即使 SSH 断开,脚本也不会停止。并且,screen 还可以保存日志,帮助你事后查看任务的执行结果。
安装 Linux screen 工具
安装命令如下:
# 对于 Debian/Ubuntu 系
sudo apt update && sudo apt install -y screen
# 对于 CentOS/RHEL 系
sudo yum install -y screen
一键后台运行脚本(防断线 + 日志保存)
command -v screen >/dev/null || (apt update && apt install -y screen || yum install -y screen)
:检查screen
是否安装,如果没有安装,则自动安装。screen -S speedtest -dm
:创建一个名为speedtest
的后台screen
会话,-dm
参数让它在后台运行。tee speedtest.log
:将输出同时保存到speedtest.log
日志文件中。
以 VPS 测速脚本格式为例子,使用screen一键后台运行脚本时替换这里 "curl -LsO bench.monster/speedtest.sh && bash speedtest.sh -as | tee speedtest.log"
,换成你的脚本以及保存的日志文件名
bash -c 'command -v screen >/dev/null || (apt update && apt install -y screen || yum install -y screen); screen -S speedtest -dm bash -c "curl -LsO bench.monster/speedtest.sh && bash speedtest.sh -as | tee speedtest.log"'
查看和管理后台会话
使用下方命令来管理screen
# 查看正在运行的 screen 会话
screen -ls
# 重新进入某个会话(例如 speedtest)
screen -r speedtest
# 退出会话但保留任务
Ctrl + A 然后按 D
# 结束某个会话
screen -X -S 会话名 quit
版权声明:
作者:ivpsr.com
链接:https://ivpsr.com/9816.html
文章版权归作者所有,未经允许请勿转载。
THE END