bash 프로세스가 9개 있는 이유는 무엇이며, 그 중 하나가 너무 많은 CPU를 사용하는 이유는 무엇이며, 이를 중지하려면 어떻게 해야 합니까?

bash 프로세스가 9개 있는 이유는 무엇이며, 그 중 하나가 너무 많은 CPU를 사용하는 이유는 무엇이며, 이를 중지하려면 어떻게 해야 합니까?

나는 항상 9개의 서로 다른 bash 프로세스를 실행하고 있습니다(때때로 더 많은 것을 얻습니다. 예를 들어 현재 37개의 bash 프로세스가 있습니다.).이 문제를 발견했습니다, OP에도 비슷한 문제가 있습니다. 그러나 나는 이것이 중복 이라고 생각하지 않습니다 (이것은 디버깅 방법을 묻기 때문에 내 질문은 직접적인 이유였습니다). 이것을 실행 lsof | grep 'bash.*cwd'하고 .~/private/tmp

대답은 그것을 사용해야 한다고 했지만 pstree사용하지 않았고, 그런 다음 그것을 사용해야 한다고 말했지만 ps aux -HBSD가 있습니다. 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에 이 기능이 있는지는 모르겠습니다.

관련 정보