温馨提示×

centos nohup日志怎么重定向

小樊
45
2026-07-09 03:09:34
栏目: 智能运维

CentOS(以及大多数 Linux) 中,nohup 默认会把输出写到当前目录下的 nohup.out,但你可以手动重定向日志路径和类型

下面按常见场景说明。


一、基本用法(重定向 stdout / stderr)

nohup command > app.log 2>&1 &

含义:

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

最常用


二、指定不同日志文件

nohup command > stdout.log 2> stderr.log &
  • stdout.log:正常输出
  • stderr.log:错误日志

三、不生成 nohup.out(丢弃输出)

nohup command > /dev/null 2>&1 &

或:

nohup command &> /dev/null &

四、追加日志(不覆盖)

nohup command >> app.log 2>&1 &

适合长期运行服务,防止日志被清空。


五、结合 Java / Python / Shell 示例

Java

nohup java -jar app.jar > app.log 2>&1 &

Python

nohup python3 main.py > run.log 2>&1 &

Shell 脚本

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

六、查看后台任务

jobs

或:

ps -ef | grep command

七、常见问题

1️⃣ nohup.out 仍然生成?

没有重定向输出,或重定向没写全
✅ 必须显式写 > file 2>&1


2️⃣ 日志太大怎么办?

可结合 logrotate,例如:

/opt/app/app.log {
    daily
    rotate 7
    missingok
    notifempty
}

如果你愿意,可以告诉我:

  • 你运行的是 什么程序(Java / Python / Shell)
  • 是否希望 按日期切分日志
  • 是否在 systemd 环境

我可以给你一个更规范的方案(比如用 systemd 而不是 nohup)。

0