什么是列出Linux系统中所有内核任务的最普遍方法?

3

我正在试图找出编写跨平台内核代码/ shell脚本以列出{(pid/tid, name)}的最佳方法,其中包括 Linux 发行版中的所有内核任务。应该是尽可能普遍适用的。我尝试使用ps -T,但它似乎不准确,并且一些平台在其busybox中不支持它。有什么建议吗?


只是一个建议,尝试使用 top 命令,也许可以解决问题... http://unixhelp.ed.ac.uk/CGI/man-cgi?top - Omkant
1
像ps这样的UNIX命令使用管道吗? - Ramy Al Zuhouri
1
我有一种感觉,除了编写自己的C代码来列出所有进程,你可能不得不依赖于可能在特定发行版中可用或不可用的工具。如果有人有更好的答案,我全听着呢。 - Mats Petersson
我同意“管道+ps”。你担心的是不同平台在ps中有不同的选项吗?通过一些研究,你应该能够将其简化为最低公共分母集合。祝好运。 - shellter
看这个:https://dev59.com/9GzXa4cB1Zd3GeqPTWsn或者使用 ps - 0x90
2个回答

2
如果你想区分用户进程和内核任务,那么这是关于该主题的先前讨论:识别内核线程
对于那个问题,我的答案不需要任何工具,只需读取/proc//stat的内容,因此它应该适用于任何发行版。

0

你可以尝试一下

ps -e -o pgrp= -o pid= -o cmd= | sed -ne 's/^ *0 *// p'

虽然它假定所有内核任务都属于进程组0。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接