
想在Linux里看某个服务的进程到底在干嘛,或者它占了多少资源?其实不复杂,核心就是先找到这个服务的进程ID(PID),然后用各种工具围绕这个PID去深挖。通常,
systemctl status
要看一个Linux服务的进程详情,我通常会这样一步步来:
首先,得明确你要看的是哪个服务。比如,
nginx
mysql
第一步,找到服务的PID。对于用
systemd
systemctl status <服务名>
比如
systemctl status nginx
Main PID: XXXX (进程名)
XXXX
如果服务不是
systemd
pgrep
pgrep -f <服务名或进程关键词>
比如
pgrep -f nginx
nginx
拿到PID之后,就可以开始“解剖”了:
查看进程基本信息:
ps -fp <PID>
ps -fp
ps -efH | grep <PID>
pstree -p <PID>
实时监控资源占用:
top -p <PID>
top
-p
查看进程打开的文件和网络连接:
lsof -p <PID>
lsof
lsof
追踪进程的系统调用:
strace -p <PID>
这个有点高级,但非常强大。
strace
定位服务进程的PID,在我看来,是所有后续操作的基石。如果连“目标”都找不到,那还谈什么分析呢?
最直接、最现代的办法,前面也提到了,就是利用
systemd
systemd
systemctl status <服务名>
但如果服务不是
systemd
pgrep
my_app.py
supervisord
systemctl
pgrep -f my_app.py
-f
pgrep
当然,老派一点的做法是
ps -ef | grep <关键词>
grep
grep
grep -v grep
ps -ef | grep '[k]eyword'
grep
systemctl
pgrep
ps | grep

当我们拿到PID后,用
ps -fp <PID>
USER
root
USER
%CPU
%CPU
top -p PID
%MEM
VSZ
RSS
%MEM
RSS
VSZ
RSS
STAT
R
S
D
Z
T
D
D
Z
START
COMMAND
COMMAND
这些信息就像是进程的“体检报告”,通过它们,我们能对服务的健康状况有个初步但全面的了解。

仅仅看到CPU、内存这些基本指标,很多时候还不够。当问题变得复杂时,我们需要更“深入”的工具去探究进程的内在。
文件句柄与网络连接的透视:lsof -p <PID>
lsof
lsof
lsof
系统调用的“显微镜”:strace -p <PID>
strace
EACCES
ECONNREFUSED
strace
No such file or directory
strace
grep
性能瓶颈的定位:perf top -p <PID>
top
perf
linux-tools-common
perf
perf top -p <PID>
这些工具,每一个都像是一把锋利的解剖刀,能帮助我们层层剥开进程的表象,直达问题的核心。当然,使用它们需要一定的经验和对Linux系统原理的理解,但掌握它们,无疑会大大提升你解决复杂问题的能力。
以上就是Linux怎么查看某个服务的进程详情的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号