web-dev-qa-db-ja.com

'ps'コマンドがハングする

同僚がこの問題に2回遭遇しましたが、何が問題なのかわかりません。彼のpsコマンドはハングし、CPUの約25%を占有します。

   in_progress=1
   sleep 10

   while [ "$in_progress" -eq 1 ]; do
      num_isp=`ps -e | grep isputility | grep -v grep | wc -l`
      if [ "$num_isp" -eq 0 ]; then
         in_progress=0
      fi
      sleep 10
   done

以下は、ハングしたpsコマンドの出力です。

       F S   UID        PID       PPID  C PRI  NI ADDR    SZ WCHAN STIME TTY          TIME CMD
00100000 -     0   35672094    1204253  -  10   0    -  844K -     Apr16 ?        00:00:00 /bin/sh /home/customProgram
00100000 -     0   43548705   42545184  -  10   0    -  648K -     11:51 ?        00:00:00 ps –elf
00100000 -     0   41926696   35672094  -  10   0    -  648K -     Apr16 ?        03:53:01 ps -e
00100000 -     0   41926702   35672094  -  10   0    -  672K -     Apr16 ?        00:00:00 grep isputility
00100000 -     0   41926704   35672094  -  10   0    -  672K -     Apr16 ?        00:00:00 grep -v grep
00100000 -     0   41926706   35672094  -  10   0    -  640K -     Apr16 ?        00:00:00 wc -l

QNX hogsコマンド(topと同様)を実行すると、psがCPUの約25%を使用していることがわかります。

hogs -% 1 -n
PID             NAME  MSEC  PIDS SYSTEM
1            procnto  2116   71%    70%
41926696           ps   763   25%    25%

psがハングした理由と、それに対して何ができるかを理解するために、誰かが私たちを正しい方向に向けることができますか?

1
kmort

strace psを実行して、どのシステムコールがかかっているかを確認し、それに応じてアクションを実行してください。

1
mdpc