AIX 上的进程状态

AIX 上的进程状态

我想在 AIX 上获取进程状态,就像我们在 Linux 上获取它一样,我没有在文件/proc/<PID>/stat中找到状态。/proc/<PID>/status那里有一些加密文本。我应该在 AIX 上访问哪个文件来获取特定进程的状态?

答案1

AIX 的内容/proc/<PID>/status应按照包含文件struct pstatus中的定义进行结构化。<sys/procfs.h>据我所知,文件结构没有标准/proc/<PID>/*,因此所有读取/proc都应被视为特定于操作系统的代码。不要期望在任何其他操作系统中的 Linux 中找到的每个数据元素都有严格的一对一映射/proc:数据的排列方式可能非常不同,或者某些数据元素可能完全丢失。

请参阅 IBM 文档:https://www.ibm.com/support/knowledgecenter/en/ssw_aix_72/filesreference/proc.html

对于 C API,基本上,读/proc/<PID>/status入合适大小的缓冲区(或mmap()它),将缓冲区/mmap 指针转换为(struct pstatus *)并使用它来访问数据元素。

根据您想要的状态信息,您可能需要读取同一目录中的其他文件,使用它们的等效结构类型来访问数据元素。

答案2

要获取有关进程的信息,请调用ps命令。通过-o选项来选择输出哪些信息并控制格式。

AIX 有一个/proc目录,但其内容与Linux不一样(虽然有相似之处)。/proc/<PID>/status每个进程都有一个文件;它是二进制格式(未加密),如果您确实想使用该格式而不是ps.

答案3

这也许应该是一个评论 - 但我没有足够的“地位”来做到这一点,叹息...... - 所以试图提供一个答案的起点!

“就像我们在 Linux 上一样......”对于 AIX 人员来说并不算什么。我尝试过一些简单的事情:“其他”状态是您会接受的答案吗?

我在 Linux 服务器上尝试过:

root@x064:[/data]cat /proc/1/status

  ▒▒/▒0▒0▒;▒
            ▒▒▒9▒E▒4▒œOTHER
root@x064:[/data]
root@x064:[/data/prj/gnu/less-481]strings /proc/1/status
OTHER

在 AIX 上,它看起来类似:

michael@x071:[/home/michael]cat /proc/1/status
  dò0ò0 ~5!(FiË3ã­ú¤ÀOTHER
michael@x071:[/home/michael]strings /proc/1/status
!(Fi
Ë3ã­ú
OTHER

恕我直言 - 字符串!(Fi 和 Ë3ãú 只是看起来像字符串,但只是“显示为字符串的正常状态”

查看 /proc 时应使用的命令是:

michael@x071:[/home/michael]ls -l /usr/bin/proc*
-r-xr-xr-x    1 bin      bin            8462 Jan 12 2015  /usr/bin/proccred
-r-xr-xr-x    1 bin      bin           23820 Jan 12 2015  /usr/bin/procfiles
-r-xr-xr-x    1 bin      bin           14852 Jan 12 2015  /usr/bin/procflags
-r-xr-xr-x    1 bin      bin           11222 Jan 12 2015  /usr/bin/procldd
-r-xr-xr-x    1 bin      bin           20884 Jan 12 2015  /usr/bin/procmap
-r-xr-xr-x    1 bin      bin            8274 Jan 12 2015  /usr/bin/procrun
-r-xr-xr-x    1 bin      bin            8974 Aug 06 2011  /usr/bin/procsig
-r-xr-xr-x    1 bin      bin           24534 Jan 29 2015  /usr/bin/procstack
-r-xr-xr-x    1 bin      bin            8502 Jan 12 2015  /usr/bin/procstop
-r-xr-xr-x    1 bin      bin           34888 Jan 12 2015  /usr/bin/proctree
-r-xr-xr-x    1 bin      bin           13612 Jan 12 2015  /usr/bin/procwait
-r-xr-xr-x    1 bin      bin            9158 Jan 12 2015  /usr/bin/procwdx

相关内容