nohup 后台 log启动 python脚本
·
一、基础用法(核心命令)
nohup 后台 log启动 python脚本。
# 标准格式:后台运行脚本 + 日志输出 + 不占用当前终端
nohup python your_script.py > your_script.log 2>&1 &

各部分解释:
| 部分 | 作用 |
|---|---|
nohup |
核心命令,全称 "no hang up",表示不挂断,即使关闭终端脚本也继续运行 |
python |
调用 Python 解释器(如果系统默认是 python,也可直接用 python) |
your_script.py |
你要运行的 Python 脚本文件名(替换为实际文件名,如 test.py) |
> your_script.log |
将脚本的标准输出(stdout)重定向到指定日志文件(如 your_script.log) |
2>&1 |
将标准错误(stderr,比如脚本报错信息)也重定向到同一个日志文件中 |
& |
将进程放到后台运行,不阻塞当前终端 |
二、进阶用法(按需调整)
1. 日志按日期命名(避免覆盖)
如果希望日志文件按启动时间命名,方便区分不同运行批次:
# 日志文件格式:脚本名_年-月-日_时-分-秒.log
nohup python your_script.py > your_script_$(date +%Y-%m-%d_%H-%M-%S).log 2>&1 &
2. 指定 Python 虚拟环境
如果脚本依赖虚拟环境,需要先激活环境或直接调用虚拟环境的 Python 解释器:
# 方式1:先激活虚拟环境再运行
source /path/to/venv/bin/activate
nohup python your_script.py > your_script.log 2>&1 &
# 方式2:直接调用虚拟环境的 Python(更推荐,无需激活)
nohup /path/to/venv/bin/python your_script.py > your_script.log 2>&1 &
3. 查看运行状态 & 停止脚本
# 1. 查看后台运行的 Python 进程(找到进程号 PID)
ps -ef | grep python | grep your_script.py
# 2. 停止后台运行的脚本(替换为实际的 PID,比如 12345)
kill 12345
# 3. 强制停止(如果 kill 无效时使用)
kill -9 12345
# 4. 实时查看日志(类似 tail -f)
tail -f your_script.log
三、注意事项
- 路径问题:如果脚本中用到相对路径(比如读取 / 写入文件),建议先
cd到脚本所在目录再运行,避免路径错误。示例: -
cd /home/your_user/scripts # 进入脚本目录 nohup python test.py > test.log 2>&1 & # 运行脚本 - 权限问题:确保脚本文件和日志目录有读写权限(可执行
chmod +x your_script.py赋予脚本执行权限)。 - 日志过大:如果脚本运行时间长、日志量大,可配合
logrotate工具切割日志,避免单个日志文件过大。
总结
- 核心命令:
nohup python 脚本名 > 日志名.log 2>&1 &,实现后台运行 + 日志记录; - 关键参数:
2>&1确保报错信息也写入日志,&让进程后台运行; - 辅助操作:用
ps查进程、kill停进程、tail -f实时看日志。
更多推荐



所有评论(0)