温馨提示×

怎样查看Linux进程日志

小樊
43
2026-07-18 11:12:44
栏目: 智能运维

在 Linux 中,“进程日志”不是一个固定的概念,通常会根据进程类型和配置从不同地方查看。下面按最常见、最实用的方式给你一个完整说明。


一、最常用:用 journalctl(systemd 系统,推荐)

适用于 CentOS 7+、Ubuntu 16+、Debian 8+

1️⃣ 查看某个服务的日志(最常见)

journalctl -u 服务名

例如:

journalctl -u nginx
journalctl -u mysql
journalctl -u docker

2️⃣ 实时查看(类似 tail -f)

journalctl -u nginx -f

3️⃣ 查看指定时间范围

journalctl --since "2025-01-01 00:00" --until "2025-01-02 00:00"

4️⃣ 查看某个 PID 的日志

journalctl _PID=1234

二、查看进程自身的日志文件(最常见)

很多程序会写日志到文件,而不是系统日志。

常见路径

/var/log/

常见例子:

/var/log/nginx/
/var/log/mysql/
/var/log/httpd/

查看方法

tail -f /var/log/nginx/error.log

或:

less /var/log/nginx/access.log

三、查看系统级进程日志(通用但不精确)

1️⃣ /var/log/messages(CentOS / RHEL)

tail -f /var/log/messages

2️⃣ /var/log/syslog(Ubuntu / Debian)

tail -f /var/log/syslog

注:这些日志按“消息”记录,不一定能直接对应到某个进程。


四、通过进程 PID 查日志(进阶)

1️⃣ 先查 PID

ps -ef | grep 进程名

或:

pgrep nginx

2️⃣ 查看该进程打开的文件(包括日志)

lsof -p PID

或直接看日志文件:

ls -l /proc/PID/fd

五、查看“标准输出 / 标准错误”(后台进程)

如果进程是通过 nohup 启动的:

nohup.out

或:

tail -f nohup.out

如果是 systemd 服务,stdout/stderr 会被 journald 接管,直接用:

journalctl -u 服务名

六、快速定位思路(推荐)

服务器程序(nginx、mysql、docker)

journalctl -u 服务名

自定义程序

ps -ef | grep 程序名
→ 看配置文件里的 log 路径
→ 或直接 lsof -p PID

七、如果你愿意,我可以帮你查具体进程

你可以告诉我:

  • ✅ Linux 发行版(CentOS / Ubuntu / 麒麟等)
  • ✅ 进程名称或 PID
  • ✅ 是系统服务还是你自己跑的程序

我可以一步步帮你精确找到日志位置。

0