如何详细列出所有 unix 当前进程?

如何详细列出所有 unix 当前进程?

如何详细显示 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

相关内容