首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pgrep找不到系统解析?

为什么pgrep找不到系统解析?
EN

Unix & Linux用户
提问于 2022-11-17 05:24:28
回答 1查看 95关注 0票数 0
代码语言:javascript
复制
#!/usr/bin/env bash
echo "pgrep not finding systemd-resolved has bitten many times."
if [ -z $(pgrep systemd-resolved) ]; then 
  echo -e "systemd-resolved not found by pgrep, trying another way.\n"; 
  ps aux | egrep -i '(DNS|HOST|DH|RESOLV|systemd-resolved)' | egrep -v 'grep -E'; 
fi;
代码语言:javascript
复制
systemd-resolved not found by pgrep, trying another way:    
systemd+     **914**  0.0  0.0  26196  4048 ?        Ss   Nov12   0:02 /lib/systemd/**systemd-resolved**
rjt        73300  0.0  0.0   9228  2160 pts/2    S+   23:02   0:00 grep -E --color=auto -i (DNS|HOST|DH|RESOLV|systemd-resolved)

我在许多不同年龄的系统上工作。需要了解后端名称解析系统以及名称解析器涵盖的内容。因此,我经常使用pgrep查找所有与dns相关的进程。

似乎是pgrep的字符串长度限制?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-11-17 05:54:02

正如在man pgrep中所解释的,

用于匹配的进程名仅限于/proc/pid/stat输出中的15个字符。使用-f选项与完整的命令行/proc/pid/cmdline进行匹配。

“系统解决”有16个字符,因此它不符合这一限制。如果您运行pgrep -f systemd-resolved,您将找到该进程。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/725237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档