ps 中如何判断内核线程

ps 里可以通过线程名是否包括 中括号 来判断是否为内核线程。

如下:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  19360   704 ?        Ss   Nov17   0:06 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Nov17   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Nov17   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Nov17   0:10 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Nov17   0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    Nov17   0:03 [watchdog/0]
root         7  0.0  0.0      0     0 ?        S    Nov17   2:40 [events/0]
root         8  0.0  0.0      0     0 ?        S    Nov17   0:00 [cgroup]
root         9  0.0  0.0      0     0 ?        S    Nov17   0:00 [khelper]


ps 代码里是通过查看 /proc/pid/cmdline 来进行判断,如果为空则追加 中括号 。

代码调用过程如下:

int escape_command(char *restrict const outbuf, const proc_t *restrict const pp, int bytes, int *cells, unsigned flags){
  int overhead = 0;
  int end = 0;


  if(flags & ESC_ARGS){
    const char **lc = (const char**)pp->cmdline;
    if(lc && *lc) return escape_strlist(outbuf, lc, bytes, cells);
  }


#0  escape_strlist (dst=0x7ffff1cf3090 "  0:06", src=0x641a00, bytes=131072, cells=0x7fffffffdcb4) at proc/escape.c:167
#1  0x00007ffff7bad403 in escape_command (outbuf=0x7ffff1cf3090 "  0:06", pp=0x7fffffffe010, bytes=131072, cells=0x7fffffffdcb4, flags=7)
    at proc/escape.c:189
#2  0x0000000000404dc8 in pr_args (outbuf=0x7ffff1cf3090 "  0:06", pp=0x7fffffffe010) at ps/output.c:348
#3  0x0000000000407c66 in show_one_proc (p=0x7fffffffe010, fmt=0x639330) at ps/output.c:1854
#4  0x000000000040226a in simple_spew () at ps/display.c:341
#5  0x0000000000402c5b in main (argc=2, argv=0x7fffffffe498) at ps/display.c:593


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值