プロセスごとのlimitを表示するスクリプトを書いた
プロセスごとのlimitを表示するのにイチイチpidを調べてcatしてなんて面倒なので、ビシッと表示してしまう簡易的なスクリプトを書いてみた。※エラー処理とかその他諸々特に気をつかってないのでゆるして。
/usr/local/bin/にpslimitとでもして下記のスクリプトを保存、でchmod 755 pslimitもしておく。てか、どこでもすきなところにどうぞ。
#!/bin/bash # # http://d.hatena.ne.jp/poch-7003/ # #poch7003 # [ -f /proc/$$/limits ] || exit 99 BAR="-----------------------------------------------------------------------------" ps=`ps -eo user,pid,args |tr -s ' '` if [ $# = 1 ]; then case "$1" in [0-9]*) ps=`echo "$ps" |grep " $1 " |grep -v " $$ "` ;; [!\-][0-9A-Za-z\-_]*) ps=`echo "$ps" |grep "^$1 " |grep -v " $$ "` ;; *) echo "usage: $0 [-h] [pid|user]" exit 1 ;; esac fi echo "$ps" | while read user pid args; do if [ -f /proc/$pid/limits ]; then echo "$BAR" echo "pid => $pid" echo "user => $user" echo "cmd => $args" echo "$BAR" cat /proc/$pid/limits echo "" fi done exit $?
※下記はパスが通ってる事前提での実行例。
# pslimit -h usage: /usr/local/bin/pslimit [-h] [pid|user] # pslimit named ----------------------------------------------------------------------------- pid => xxxx user => named cmd => /usr/sbin/named -u named -t /var/named/chroot ----------------------------------------------------------------------------- Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size unlimited unlimited bytes Max core file size unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes 8191 8191 processes Max open files 4096 4096 files Max locked memory 32768 32768 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 8191 8191 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0
/etc/security/limits.d/で設定したのに再起動したらapacheにlimitが反映されてない!なんてのを自分で気づく為にどうぞ。