同僚がこの問題に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
がハングした理由と、それに対して何ができるかを理解するために、誰かが私たちを正しい方向に向けることができますか?
strace ps
を実行して、どのシステムコールがかかっているかを確認し、それに応じてアクションを実行してください。