温馨提示×

debian nohup日志怎么用

小樊
57
2026-10-13 09:43:53
栏目: 智能运维

在 Debian(以及其它 Linux 发行版)里,nohup 常用来让进程在退出终端后继续运行,同时会把输出默认写到日志文件里。下面按“怎么用、日志在哪、怎么看、常见问题”来说明。


一、nohup 基本用法

最简单的形式:

nohup command &

例如:

nohup python3 app.py &

含义:

  • nohup:忽略挂断信号(终端关闭也不退出)
  • &:放到后台运行

二、nohup 日志默认在哪里

1. 默认日志文件

如果不指定输出,nohup 会默认把:

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

写入当前目录的:

nohup.out

所以你通常会看到:

ls
# nohup.out

三、自己指定日志文件(推荐)

更规范的做法是手动指定日志:

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

说明:

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

如果是 bash/sh:

nohup ./start.sh > run.log 2>&1 &

四、怎么查看 nohup 日志

1. 实时查看日志(最常用)

tail -f app.log

退出查看:Ctrl + C

2. 查看最后 100 行

tail -n 100 app.log

3. 实时查看并高亮错误

tail -f app.log | grep ERROR

五、如何确认进程是否在跑

ps aux | grep app.py

或:

jobs

(仅当前 shell 有效)


六、停止 nohup 进程

先查 PID:

ps aux | grep app.py

然后:

kill 12345

强制杀:

kill -9 12345

七、常见坑

1. nohup.out 越来越大

解决:

nohup cmd > app.log 2>&1 &

或配合 logrotate

2. 终端关了进程还是死了

原因:

  • 用了 kill 父 shell
  • 不是在 nohup ... & 下运行

3. 更现代替代方案(推荐)

  • screen
  • tmux
  • systemd 服务

例如 tmux:

tmux new -s app
python3 app.py
# Ctrl+B D 脱离

八、总结一句话

Debian 下 nohup 日志就是命令输出文件,默认是 nohup.out,建议用 > log 2>&1 & 自己指定,用 tail -f 看。

如果你有具体命令(比如 Java / Python / Node),我可以给你写一条可直接用的完整命令。

0 踩