Linux服务器后台运行程序操作指南(含Python与Shell脚本实战)

Ivy
Ivy
发布时间:2026-10-10| 3人浏览过
原创

针对Linux服务器需长时间运行Python或Shell脚本的场景,本文详细拆解 nohup 一键提交单次任务与 tmux 建立隔离会话的完整流程。涵盖权限配置、日志重定向、进程监控与安全终止操作,帮助开发者脱离终端限制高效管理后台计算任务。

Linux服务器后台运行程序的适用场景

在服务器端执行模型推理、数据处理或自动化巡检时,终端连接中断会导致正在运行的脚本意外终止。通过后台守护机制,程序将脱离当前登录会话独立运行,即使关闭SSH客户端或断开网络,计算过程仍会持续进行。根据任务交互频率与管理需求,可分别采用 nohup 提交无交互单次任务,或使用 tmux 构建持久化窗口以进行多实验并行调试。

方法一:使用 nohup 提交单次耗时任务

第1步:赋予脚本可执行权限

目的:避免执行 .sh 脚本时触发 Permission denied 报错。
入口/动作:打开终端,导航至脚本所在目录,执行权限授权指令。

chmod +x 你的脚本名.sh

第2步:启动后台任务并重定向日志

目的:将标准输出与标准错误捕获至日志文件,释放当前终端占用。
入口/动作:在命令行前追加 nohup,末尾添加日志重定向符与后台符 &。

Python 脚本示例:

nohup python train_remote.py --model qwen2.5-vl --batch_size 4 > train_output.log 2>&1 &

Shell 脚本示例(两种等价写法任选):

# 写法 A(推荐,显式调用解释器)
nohup bash run_experiments.sh > exp_output.log 2>&1 &

# 写法 B(需提前完成第1步权限赋予)
nohup ./run_experiments.sh > exp_output.log 2>&1 &

第3步:查看运行进度与终止进程(附风险提醒)

目的:验证任务存活状态、追踪实时输出,或在必要时安全结束运行。
入口/动作:
1. 监控进度:tail -f train_output.log。实时刷新代码打印信息,按 Ctrl + C 仅退出监控画面,不会中断后台进程。
2. 终止任务:风险提醒:kill -9 为强制中断信号,可能导致未落盘的数据丢失或锁文件残留。确认无需保存中间状态后再执行。

# 查询目标进程号
ps -ef | grep run_experiments
# 示例查到 PID 为 12345 后执行强杀
kill -9 12345

方法二:使用 tmux 管理交互式开发与多任务

第1步:创建并进入独立会话环境

目的:在服务器内划分独立虚拟终端,隔离不同实验的输出流。
入口/动作:创建命名会话并自动切入。

tmux new -s track_eval

成功进入后,屏幕底部会出现绿色状态栏,表明已处于独立工作区。

第2步:在隔离窗口中直接运行代码

目的:利用新窗口的独立性执行常规命令,无需拼接守护参数。
入口/动作:直接在当前 tmux 窗口内输入常规运行指令。

python evaluate.py --dataset DRSet
bash run_experiments.sh

第3步:挂起进程、恢复界面与彻底销毁

目的:实现断线重连下的无缝进度回看,并在任务完成后清理资源。
入口/动作:
1. 挂起隐藏:按住 Ctrl + b 松开后,单独按下 d 键。会话将转入后台继续运行,此时可安全断开 SSH 或关机。
2. 恢复会话:次日连接服务器后,执行 tmux a -t track_eval。瞬间还原昨日终端状态,历史打印与报错均可直接阅读。
3. 销毁环境:当任务运行完毕且不再需要该会话时,在窗口内输入 exit 即可彻底关闭当前会话窗口。

方案对比与核心结论

nohup 语法简洁,适用于脚本逻辑固定、仅需静默产出最终结果的流水线任务;tmux 提供会话级隔离与交互式回看能力,更适合日常框架调试、超参网格搜索或多节点并发实验的环境管理。根据实际运维节奏选择对应工具,可显著降低因网络波动导致的任务中断率。

以上就是关于Linux服务器后台运行程序操作指南的详细内容,更多关于Python与Shell脚本在Linux环境下部署运维的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。