一、基础用法(核心命令)

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

三、注意事项

  1. 路径问题:如果脚本中用到相对路径(比如读取 / 写入文件),建议先 cd 到脚本所在目录再运行,避免路径错误。示例:
  2. cd /home/your_user/scripts  # 进入脚本目录
    nohup python test.py > test.log 2>&1 &  # 运行脚本
    
  3. 权限问题:确保脚本文件和日志目录有读写权限(可执行 chmod +x your_script.py 赋予脚本执行权限)。
  4. 日志过大:如果脚本运行时间长、日志量大,可配合 logrotate 工具切割日志,避免单个日志文件过大。

总结

  1. 核心命令:nohup python 脚本名 > 日志名.log 2>&1 &,实现后台运行 + 日志记录;
  2. 关键参数:2>&1 确保报错信息也写入日志,& 让进程后台运行;
  3. 辅助操作:用 ps 查进程、kill 停进程、tail -f 实时看日志。
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐