gpt4 book ai didi

linux - 需要在命令中动态插入进程 ID 的值

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:13 26 4
gpt4 key购买 nike

我想监控在我的 centos 机器上运行的进程打开的文件描述符的数量。下面的命令对我有用

watch -n 1 "ls /proc/pid/fd | wc -l"

当我需要在重新启动上述进程时监视相同的内容时,问题就来了。 pid 发生变化,我无法获取统计信息。

好处是 pname 是常量。所以我可以使用 pgrep pname 提取 pid。

那么我该如何使用下面的命令:

watch -n 1 "ls /proc/"pgrep <pname>"/fd | wc -l"

我希望动态获取 pgrep pname 值。

有什么方法可以定义一个变量,它可以连续获取 pgrep pname 的最新值,并且可以在此处插入该变量。

最佳答案

watch 每次都将其命令评估为 shell 命令,因此我们首先必须找到一个产生输出的 shell 命令。由于可能有多个匹配过程,我们可以使用循环:

for pid in $(pgrep myprocess); do ls "/proc/$pid/fd"; done | wc -l

现在我们可以引用它来按字面意思传递给 watch:

watch -n 1 'for pid in $(pgrep myprocess); do ls "/proc/$pid/fd"; done | wc -l'

关于linux - 需要在命令中动态插入进程 ID 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29494164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com