【问题标题】:What is the most general way to list all the kernel tasks in a linux system?列出linux系统中所有内核任务的最通用方法是什么?
【发布时间】:2012-12-20 18:45:31
【问题描述】:

我正在尝试找出编写跨平台内核代码/shell 脚本以在linux dis 中列出所有内核任务{(pid/tid , name)} 的最佳方法。机器。它应该是最普遍的。我尝试使用ps -T,但它似乎不准确,并且某些平台在其busybox 中不支持它。有什么建议么?

【问题讨论】:

  • 只是一个建议,试试top可能可行...unixhelp.ed.ac.uk/CGI/man-cgi?top
  • 使用类似 ps 的 UNIX 命令管道?
  • 我有一种感觉,除了编写自己的 C 代码来列出所有进程之外,您还必须依赖特定发行版中可能提供或不提供的工具。如果有人有更好的答案,我会全力以赴。
  • 我同意'Pipe + ps'。您是否担心不同平台在 ps 中提供不同的选项?通过一些研究,您应该能够将其归结为最低常见的恶魔系列。祝你好运。
  • 看看这个:stackoverflow.com/questions/14005599/… 或使用ps

标签: c linux shell linux-kernel kernel-module


【解决方案1】:

如果你想区分用户进程和内核任务,那么这是之前关于这个主题的讨论:Identifying kernel threads

我对这个问题的回答不需要任何工具,它只是读取 /proc//stat 的内容,因此它应该适用于任何发行版。

【讨论】:

    【解决方案2】:

    你可以试试

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

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

    【讨论】:

      猜你喜欢
      • 2013-03-08
      • 2020-07-17
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      相关资源
      最近更新 更多