获取 PID 并读取每个 PID 的限制文件
Getting the PID and read the limits file for each PID
我正在尝试获取 PID 列表,然后从 /proc/<PID>/limits
文件中打印 Max open files
。
我找到了一种方法,但我想知道是否可以做一些更简单的事情。
它基本上会搜索 haproxy
(本例中的睡眠 :D),搜索 Max open files
,最后读取在第一个 awk 上匹配的所有进程的限制文件。
密码是:
ps aux | awk '/sleep/ && !/awk/ { print }' | xargs -I{} awk '/Max open files/{ print "PID="{}"\t\t"[=10=] }' /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
如果您想缩短它的长度,您可以执行以下操作:
for pid in $(ps h -o pid -C sleep); do
echo "PID=$pid\t\t$(grep 'Max open files' /proc/$pid/limits)"
done
我正在尝试获取 PID 列表,然后从 /proc/<PID>/limits
文件中打印 Max open files
。
我找到了一种方法,但我想知道是否可以做一些更简单的事情。
它基本上会搜索 haproxy
(本例中的睡眠 :D),搜索 Max open files
,最后读取在第一个 awk 上匹配的所有进程的限制文件。
密码是:
ps aux | awk '/sleep/ && !/awk/ { print }' | xargs -I{} awk '/Max open files/{ print "PID="{}"\t\t"[=10=] }' /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
如果您想缩短它的长度,您可以执行以下操作:
for pid in $(ps h -o pid -C sleep); do
echo "PID=$pid\t\t$(grep 'Max open files' /proc/$pid/limits)"
done