Linux——服务器后台运行程序指南(包含 Python 与 .sh 脚本实战)

在运行 .sh 脚本之前的重要前提:如果直接运行 .sh 脚本时遇到"权限拒绝 (Permission denied)"的报错,需要先给脚本加上可执行权限。指令是:chmod +x 你的脚本名.sh

方法一:使用 nohup(适合跑耗时较长的单次任务,一键提交不需要看实时界面)

核心逻辑:在运行命令前加 nohup,在末尾加 > 日志名.log 2>&1 &。无论是跑 Python 还是 Shell 脚本,这套模板完全通用。

  1. 启动后台任务

Python 脚本例子:

python 复制代码
nohup python train_reamot.py --model qwen2.5-vl --batch_size 4 > train_output.log 2>&1 &

.sh 脚本例子(两种写法皆可):

python 复制代码
写法 A(推荐):nohup bash run_experiments.sh > exp_output.log 2>&1 &
python 复制代码
写法 B(需提前赋予权限):nohup ./run_experiments.sh > exp_output.log 2>&1 &
  1. 查看运行进度
    指令:tail -f 日志文件名.log
    例子:tail -f train_output.log
    说明:这会实时刷新并显示代码里的输出。想退出查看画面,按 Ctrl + C 即可(请放心,这绝对不会停掉后台正在跑的程序)。
  2. 终止后台程序
    指令:先查进程号 ps -ef | grep 你的脚本名,然后强杀 kill -9 进程号。
    例子:输入 ps -ef | grep run_experiments 查到进程号是 12345 后,输入 kill -9 12345 即可强制停止任务。

方法二:使用 tmux(适合多任务并行、需要时常切回来看进度条或交互的开发环境)

核心逻辑:在服务器里建一个"虚拟房间",在房间里就像平时一样跑代码。退出房间时代码依然在跑,下次进房间接着看。

  1. 创建并进入一个新环境
    指令:tmux new -s 给任务起个名字
    例子:tmux new -s track_eval
    说明:输入后,屏幕底部会出现一条绿色状态栏,说明你已经进入了安全环境。
  2. 在里面正常跑代码(Python 和 .sh 均可)
    在这个环境里,你不需要加 nohup,平常怎么跑代码现在就怎么跑。

Python 脚本例子:

python 复制代码
python evaluate.py --dataset DRSet

.sh 脚本例子:
bash run_experiments.sh 或者直接输入 ./run_experiments.sh

  1. 把程序挂到后台(最关键的一步)
    指令:按住键盘上的 Ctrl 和 b 键,松开手指,然后再单独按字母 d 键。
    说明:此时你会退回到最初的普通终端界面。即使你现在断开 SSH 连接、关机下班,刚才运行的 .py 或 .sh 脚本依然在服务器后台稳稳执行。
  2. 恢复之前的界面
    指令:tmux a -t 任务名字
    例子:tmux a -t track_eval
    说明:第二天重新连上服务器后输入该指令,就能瞬间回到昨天的界面,进度条和打印出来的报错信息都在。当这个任务彻底结束,你不再需要这个环境时,在界面里输入 exit 即可彻底销毁它。

总结建议:

  • 如果你已经写好了最终的训练脚本,只需要它默默跑出结果,用 nohup 最简单清爽。
  • 如果是日常需要反复调试框架、同时跑多个不同的实验对比,用 tmux 建立几个不同的窗口来管理会大幅提升效率。
相关推荐
用户83562907805130 分钟前
使用 Python 对 Excel 工作表进行排序
后端·python
for_ever_love__1 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
用户8356290780511 小时前
使用 Python 合并 PowerPoint 演示文稿
后端·python
xh didida1 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
weixin_461769401 小时前
VS Code 中创建 Jupyter 文件(.ipynb)
ide·python·jupyter
2601_966949651 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
全栈弄潮儿2 小时前
Python实战第1期:Python环境搭建与第一个程序
python
心易行者2 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
夜之眷属2 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
weixin199701080162 小时前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存