在不使用top和ps命令的情况下检查linux中的进程

时间:2017-11-09 05:55:29

标签: linux

我希望在不使用topps的情况下查看2000个流程中的流程状态 命令。

流程名称为 tom

1 个答案:

答案 0 :(得分:1)

process没有任何名称(只有正在运行的程序有一个,但另请参阅pthread_setname_np(3)。 ..你可能有像this这样的病态案例。它有一个pid(这是一个整数,如1234,类型为pid_t)。请参阅credentials(7)fork(2)以及execve(2)。使用pidof(1)pgrep(1)查找某个进程的pid。 executable程序(例如/bin/bash)可以由多个进程运行(或者不运行,或者只运行一个)。

您可以使用信号编号为零的kill(2)来检查该过程是否存在。

最重要的是,您应该考虑使用/proc/(有关详情,请参阅proc(5))。有关pid 1234的过程,请参阅/proc/1234/,其中包含多个文件和子目录(特别是/proc/1234/status/proc/1234/maps)。在终端中尝试cat /proc/$$/statuscat /proc/$$/maps以及stat /proc/$$/exels -l /proc/$$/(然后将$$替换为您感兴趣的pid。)

topps实用程序(以及pidofpgrep,...)正在使用/proc/(这是其中的平均值) Linux内核显示有关进程和系统本身的信息。您也可以使用/proc/编写您的程序(或脚本)。另请参阅this

从程序内部,您可以像浏览其他文件树一样探索/proc/,例如使用stat(2)opendir(3)readdir(3)nftw(3)等。