【问题标题】:checking process in linux without using top and ps command [closed]在不使用top和ps命令的情况下检查linux中的过程[关闭]
【发布时间】:2017-11-09 05:55:29
【问题描述】:

我想在 2000 个进程中查看一个进程的状态,而不使用 topps 命令。

进程的名称是tom

【问题讨论】:

  • 什么是“状态进程”?请编辑您的问题

标签: linux


【解决方案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/$$/mapsstat /proc/$$/exels -l /proc/$$/(然后将 $$ 替换为您感兴趣的任何 pid)。

topps 实用程序(以及 pidofpgrep、...)正在使用 /proc/(这是 Linux 内核显示有关进程和系统本身)。您也可以使用/proc/ 来编写程序(或脚本)。另见this

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    相关资源
    最近更新 更多