栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ps:仅获取父进程的干净方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ps:仅获取父进程的干净方法?

与@netprer讨论答案后,他使用了一个不错的技巧:D
使用

f
on
ps
总是可以使父项位于最前面。

这应该工作:

$ ps hf -opid -C <process> | awk '{ print $1; exit }'

正如我在评论中提到的那样,这只会返回

pid
一个过程。


我会去:

ps rf -opid,cmd -C <process-name> | awk '$2 !~ /^[|\]/ { print $1 }'

那是:

  • 列出正在运行的进程
    r
    (或者
    e
    如果您需要所有内容)
  • 连同父母/孩子图
    f
  • 仅输出pid和命令名称
    -opid,cmd
  • 仅针对给定的过程
    -C <process>

然后

  • 如果第二个字段(即命令(
    -opid,cmd
    ))不是以a开头,
    或者
    |
    它是父进程,那么请打印第一个字段(即pid)。

简单测试:

$ ps f -opid,cmd -Cchromium  PID CMD 2800 /usr/lib/chromium/chromium --type=zygote --enable-seccomp-sandbox 2803  _ /usr/lib/chromium/chromium --type=zygote --enable-seccomp-sandbox 2899      _ /usr/lib/chromium/chromium --type=renderer --enable-seccomp-sandbox --lang=en-US --force-fieldtrials=ConnCountImpact/conn_count_6/ConnnectB 2906      |   _ /usr/lib/chromium/chromium --type=renderer --enable-seccomp-sandbox --lang=en-US --force-fieldtrials=ConnCountImpact/conn_count_6/Connn [  ... snip ... ] 2861      _ /usr/lib/chromium/chromium --type=renderer --enable-seccomp-sandbox --lang=en-US --force-fieldtrials=ConnCountImpact/conn_count_6/ConnnectB 2863          _ /usr/lib/chromium/chromium --type=renderer --enable-seccomp-sandbox --lang=en-US --force-fieldtrials=ConnCountImpact/conn_count_6/Connn 2794 /usr/lib/chromium/chromium --enable-seccomp-sandbox --memory-model=low --purge-memory-button --disk-cache-dir=/tmp/chromium 2796  _ /usr/lib/chromium/chromium --enable-seccomp-sandbox --memory-model=low --purge-memory-button --disk-cache-dir=/tmp/chromium 3918  _ /usr/lib/chromium/chromium --type=gpu-process --channel=2794.45.1891443837 --gpu-vendor-id=0x10de --gpu-device-id=0x0611 --gpu-driver-version -25308  _ [chromium] <defunct>31932  _ /usr/lib/chromium/chromium --type=plugin --plugin-path=/usr/lib/mozilla/plugins/libflashplayer.so --lang=en-US --channel=2794.1330.1990362572$ ps f -opid,cmd -Cchromium | awk '$2 !~ /^[|\]/ { print $1 }'PID28002794$ # also supressing the header of ps (top line 'PID') -- add 'h' to ps$ ps hf -opid,cmd -Cchromium | awk '$2 !~ /^[|\]/ { print $1 }'28002794


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401105.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号