温馨提示×

centos如何用nohup记录日志

小樊
33
2026-09-27 08:59:05
栏目: 智能运维

在 CentOS(以及大多数 Linux 系统)中,nohup 常用来在后台运行程序,并且忽略终端断开信号(SIGHUP),同时可以把输出记录到日志文件。

下面按常见用法给你说明。


一、最基础用法(记录日志)

nohup command > output.log 2>&1 &

说明:

  • nohup:进程不随终端退出而结束
  • command:你要执行的命令或脚本
  • > output.log:标准输出写入 output.log
  • 2>&1:错误输出也写入同一个日志
  • &:后台运行

示例:

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

二、默认日志文件(不指定重定向)

如果你不指定日志文件:

nohup command &

CentOS 默认会把输出写到当前目录的:

nohup.out

查看日志:

tail -f nohup.out

三、分别记录标准输出和错误日志

nohup command > stdout.log 2> stderr.log &

或:

nohup sh run.sh > run.out 2> run.err &

四、追加日志(不覆盖)

默认 > 会覆盖日志,如果想追加:

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

五、结合日期命名日志(推荐)

nohup command >> app_$(date +%Y%m%d).log 2>&1 &

六、查看后台任务

jobs

或:

ps -ef | grep command

结束进程:

kill -9 PID

七、更专业的替代方案(建议)

如果你在 CentOS 上长期运行服务,推荐:

  • systemd(生产环境首选)
  • screen / tmux
  • supervisor

示例(systemd):

/etc/systemd/system/myapp.service

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

  • 运行的是 什么程序(Java / Python / Shell)
  • 是 临时跑 还是 长期服务

我可以给你更合适的日志方案。

0 踩