私はいつも9つの異なるbashプロセスを実行しています(時々多くを取得します。たとえば、現在37個のbashプロセスがあります)。この問題を発見しました、OPにも同様の問題があります。しかし、私はこれが重複しているとは思いません(これはデバッグ方法を尋ねたので、私の質問は直接的な理由でした)。これを実行しlsof | grep 'bash.*cwd'
て。~
/private/tmp
答えはそれを使うべきだと言ったが、それを使わなかったし、pstree
それからそれを使うべきだと言ったが、ps aux -H
BSDがある。ps
ここで、-H は「違法な操作」です。だからこれをインストールしpstree
て実行しましたが、pstree
これが私の結果です。
-+= 00001 root /sbin/launchd
|-+= 67440 root login -pf avnamn
| | \--= 96033 avnamn -bash
| | \--= 99021 avnamn -bash
| \-+= 99355 avnamn -bash
| \--- 99491 avnamn grep bash
| \-+- 67441 avnamn -bash
| \--- 69408 avnamn -bash
| \-+- 08457 avnamn -bash
| \--- 08513 avnamn -bash
| \-+- 19936 avnamn -bash
| \--- 20053 avnamn -bash
|-+= 90217 root login -pfl avnamn /bin/bash -c exec -la bash /bin/bash
| \--- 90218 avnamn -bash
\--- 20873 avnamn -bash
avnamn
私のユーザー名です。そのポイントに属していないアイテムを削除しました。これは私に多くを知らせず、他の質問のOPとは異なり、再起動しても消えません。ファンが非常に騒々しくなり、プロセスが終了する可能性がありますが、しばらくしてから戻ってくるので、これは迷惑です。
ps aux
出力、CPUを多く使用します。
avnamn 34737 51,4 0,0 2476312 4832 s000 R+ 1:49am 14:14.28 -bash
top
出力、CPUを多く使用します。
34737 bash 0.0 15:02.72 1/1 0 17+ 4056K+ 0B 0B 34736 34736 running *0[1+] 0.00000 0.00000 501 1959+ 367+ 182+ 33+ 4456+ 213005750+ 215920747+ 0 0 0.0 avnamn N/A N/A N/A N/A N/A N/A
出力ps -ef | awk ' NR == 1 { header = $0; next } { pid[$2] = $0 } /bash/ { toprint[$2] } END { print header; for (i in toprint) { while (i != 1) { split(pid[i], pieces, " "); i = pieces[3]; toprint[i] } } for (i in toprint) { print pid[i] } }'
:
0 54267 1 0 11:29pm ttys011 0:01.06 login -pf avnnamn
501 61203 61158 0 6:57pm ttys007 0:00.00 -bash
501 52955 52582 0 11:22pm ttys010 0:00.00 -bash
0 54462 1 0 6:22pm ttys003 0:00.02 login -pf avnnamn
0 61157 1 0 6:57pm ttys007 0:00.02 login -pf avnnamn
0 15864 1 0 3:02pm ttys005 0:00.02 login -pf avnnamn
501 8378 8377 0 11:39pm ttys012 3:39.31 -bash
501 9716 1 0 11:47pm ?? 0:00.39 /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
0 52581 1 0 11:20pm ttys010 0:01.07 login -pf avnnamn
0 8495 1 0 11:40pm ttys013 0:01.04 login -pf avnnamn
0 71228 1 0 7:46pm ttys009 0:00.02 login -pf avnnamn
501 54268 54267 0 11:29pm ttys011 0:00.03 -bash
501 9751 9720 0 11:47pm ttys015 0:00.02 -bash
0 9720 9716 0 11:47pm ttys015 0:01.15 login -pf avnnamn
501 8496 8495 0 11:40pm ttys013 0:00.02 -bash
501 8515 8496 0 11:40pm ttys013 0:00.00 -bash
501 61158 61157 0 6:57pm ttys007 0:00.04 -bash
501 71229 71228 0 7:46pm ttys009 0:00.08 -bash
0 59136 1 0 6:46pm ttys004 0:00.03 login -pf avnnamn
0 59962 1 0 6:50pm ttys006 0:00.02 login -pf avnnamn
501 52582 52581 0 11:20pm ttys010 0:00.03 -bash
0 3066 1 0 3:04am ttys000 0:00.13 login -pf avnnamn
501 55004 54268 0 11:34pm ttys011 0:00.00 -bash
501 73098 71229 0 7:55pm ttys009 0:00.00 -bash
0 8377 1 0 11:39pm ttys012 0:01.04 login -pf avnnamn
501 71202 71201 0 7:46pm ttys008 4:18.90 -bash
0 28465 1 0 10:52pm ttys001 0:00.01 login -pf avnnamn
0 1 0 0 2:53am ?? 4:12.90 /sbin/launchd
501 3067 3066 0 3:04am ttys000 0:00.05 -bash
501 3152 3067 0 3:05am ttys000 0:00.00 -bash
501 7043 7042 0 3:27am ttys002 0:00.02 -bash
501 7048 7043 0 3:27am ttys002 0:00.00 -bash
501 15865 15864 0 3:02pm ttys005 0:00.03 -bash
501 16395 15865 0 3:05pm ttys005 0:00.00 -bash
501 28466 28465 0 10:52pm ttys001 0:00.04 -bash
501 28853 28466 0 10:55pm ttys001 0:00.00 -bash
501 54463 54462 0 6:22pm ttys003 0:00.05 -bash
501 54901 54463 0 6:24pm ttys003 0:00.00 -bash
501 59137 59136 0 6:46pm ttys004 0:00.04 -bash
501 59142 59137 0 6:46pm ttys004 0:00.00 -bash
501 59963 59962 0 6:50pm ttys006 0:00.09 -bash
501 61156 59963 0 6:57pm ttys006 0:00.00 -bash
ベストアンサー1
多くのCPUを消費するシェルプロセスが実行されている場合は、それがログインシェルかシェルスクリプトを実行しているプロセスかを確認する必要があります。ログインプロセスが多いようですが、通常別のttyに9回ログインしますか?
pstreeは、間違って行動する親を見つけるのに役立ちます。たとえば、私はpppデーモンがすぐに終了し、再起動する「悪い」シェルを生成するのを見ました。
しかし、シェルは多くのCPUを消費します。これはシェルスクリプトに問題があることを意味します。秘訣は、そのスクリプトが何であるかを調べることです。 Linuxのbashでは簡単です。 ls -l /proc//fd/10 このスクリプト名を教えてくれます。 bsdにこの機能があるかどうかはわかりません。