【问题标题】:Getting the PID and read the limits file for each PID获取 PID 并读取每个 PID 的限制文件
【发布时间】:2019-04-25 00:18:03
【问题描述】:

我正在尝试获取 PID 列表,并在从 /proc/<PID>/limits 文件打印 Max open files 之后。

我找到了一种方法,但我想知道是否可以做一些更简单的事情。

它基本上会搜索haproxy(在这个例子中睡眠:D),搜索Max open files,最后读取在第一个awk上匹配的所有进程的限制文件。

代码是:

ps aux | awk '/sleep/ && !/awk/ { print $2 }' | xargs -I{} awk '/Max open files/{ print "PID="{}"\t\t"$0 }' /proc/{}/limits

结果会是这样的:

PID=16      Max open files            1048576              1048576              files
PID=17      Max open files            1048576              1048576              files
PID=18      Max open files            1048576              1048576              files
PID=19      Max open files            1048576              1048576              files
PID=20      Max open files            1048576              1048576              files
PID=21      Max open files            1048576              1048576              files
PID=22      Max open files            1048576              1048576              files
PID=23      Max open files            1048576              1048576              files
PID=24      Max open files            1048576              1048576              files
PID=25      Max open files            1048576              1048576              files
PID=26      Max open files            1048576              1048576              files
PID=27      Max open files            1048576              1048576              files

【问题讨论】:

    标签: bash awk xargs ps ulimit


    【解决方案1】:

    如果您想让它更短,您可以执行以下操作:

    for pid in $(ps h -o pid -C sleep); do
        echo "PID=$pid\t\t$(grep 'Max open files' /proc/$pid/limits)"
    done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 2019-03-13
      • 2017-08-25
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多