find ulimit awk printf open-files
Source
- ChatGPT discussion
printf "%-8s %-30s %-15s %s\n" "PID" "Name" "soft/hard" "open files"
for pid in /proc/[0-9]*; do
p=$(basename "$pid");
name=$(ps -p "$p" -o comm= 2>/dev/null);
limit=$(awk '/Max open files/ {print $4 "/" $5}' "$pid/limits" 2>/dev/null);
[ -n "$limit" ] && printf "%-8s %-30s %-15s %s\n" "$p" "$name" "$limit" "$(ls "$pid/fd" 2>/dev/null | wc -l)";
done