温馨提示×

如何使用debian nohup日志

小樊
51
2026-10-16 06:13:28
栏目: 智能运维

在 Debian(以及其他 Linux 发行版)中,nohup 常用于在后台运行程序,并在退出终端后继续保持运行。它默认会把输出写入日志文件,方便你查看运行情况。

下面从 基本用法、日志位置、查看日志、常见问题 几个方面说明。


一、nohup 基本用法

1. 基本命令格式

nohup 命令 &

示例:

nohup python3 app.py &

说明:

  • nohup:忽略挂断信号(SIGHUP)
  • &:后台运行
  • 默认日志文件:nohup.out

二、nohup 日志文件说明

1. 默认日志

如果你没有指定输出文件,nohup 会把:

  • 标准输出(stdout)
  • 标准错误(stderr)

都写入当前目录下的:

nohup.out

查看日志:

tail -f nohup.out

2. 指定日志文件(推荐)

nohup python3 app.py > app.log 2>&1 &

含义:

  • >:标准输出写入 app.log
  • 2>&1:错误输出也写入 app.log
  • &:后台运行

查看日志:

tail -f app.log

3. 同时输出到终端和日志(可选)

nohup python3 app.py | tee app.log &

三、查看和管理 nohup 日志

1. 实时查看日志

tail -f app.log

退出:Ctrl + C

2. 查看最后 N 行

tail -n 100 app.log

3. 搜索日志内容

grep "ERROR" app.log

4. 清空日志(不中断程序)

> app.log

四、查看后台运行的 nohup 进程

1. 查看进程

ps aux | grep app.py

2. 查看后台任务

jobs

3. 结束进程

kill PID

或强制结束:

kill -9 PID

五、常见问题

1. nohup.out 太大

解决:

  • 指定日志文件
  • 使用 logrotate
  • 定期清理

2. 程序仍然退出

可能原因:

  • 不是用 & 后台运行
  • 被 systemd / shell 限制
  • 建议使用 screen 或 tmux

示例:

screen
python3 app.py
# Ctrl + A + D 脱离

六、推荐做法(生产环境)

如果是服务程序,建议使用:

  • systemd
  • supervisor

而不是长期依赖 nohup


如果你有具体场景(比如 Python / Java / Node / Shell 脚本),我可以给你更针对性的示例。

0 踩