如何详细显示 Unix 中所有当前进程及其源文件?
我想要的报告类似于 cPanel 中的每日进程日志,例如:
bookysma bookysma.com 0.7 httpd [bookysma.com] [/images/Maple_Syrup.jpg]
感谢任何帮助。谢谢。
答案1
可以使用该工具生成所有正在运行的进程的列表,ps
如下所示;
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 May16 ? 00:00:01 /sbin/init
root 2 0 0 May16 ? 00:00:00 [kthreadd]
root 3 2 0 May16 ? 00:00:55 [ksoftirqd/0]
root 6 2 0 May16 ? 00:00:00 [migration/0]
...剪辑...
查看当前打开了哪些文件以执行您可以执行的所有进程;
# lsof -P | grep REG
.... lots of output
如果您想让某些特定服务(例如 httpd)打开所有文件,您可以执行以下操作:
# ps axo comm,pgrp | grep httpd
httpd 15791
然后使用该进程组 id,选择由 httpd 及其子进程打开的所有文件,如下所示;
# lsof -P -g 15791 | grep REG
httpd 24774 15791 apache mem REG 253,0 15104 141783 /lib64/libcom_err.so.2.1
httpd 24774 15791 apache mem REG 253,0 177680 171892 /lib64/libk5crypto.so.3.1
httpd 24774 15791 apache mem REG 253,0 911816 171937 /lib64/libkrb5.so.3.3
... snip
答案2
运行 top 命令然后按 c
它将列出某个进程正在运行的命令。
除此之外,您还可以将所有正在运行的进程信息从顶部重定向到文件
顶部-b-c-M>
这将列出所有带有命令和内存(以 MB 为单位)的进程,以便您获得干净的输出。
此外,您还可以将此命令放入脚本中,并根据需要通过 cron 运行它。
谢谢.. Sandeep