bash
내 CPU의 대부분을 차지하는 여러 실행 프로세스가 있는 것 같습니다 . 이것은 다음의 출력입니다 top -c
.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20116 terdon 20 0 35288 14m 292 R 400.0 0.2 0:00.43 /bin/bash
20106 terdon 20 0 35992 15m 280 R 95.9 0.2 0:00.65 /bin/bash
20105 terdon 20 0 0 0 0 R 57.6 0.0 0:00.83 [bash]
이것은 다음의 출력입니다 ps aux | grep bash | head -3
.
terdon 7487 45.3 0.0 0 0 ? R 19:31 0:01 [bash]
terdon 7488 66.0 0.0 0 0 ? R 19:31 0:01 [bash]
terdon 7530 23.0 0.2 37984 17408 ? R 19:31 0:00 /bin/bash
명령이 실행될 때마다 PID가 변경되므로 무언가가 끊임없이 다시 태어나는 것처럼 보입니다 bash
.
세부 사항:
- 여러 항목이 있습니다
[bash]
. 내가 올바르게 이해했다면[process name]
이는 명령줄 인수 없이 프로세스가 시작된다는 의미입니다. - PID가 변경되어 무언가가 생성됩니다.
- 로그아웃했다가 다시 로그인했지만(Cinnamon에서 근무) 문제가 지속됩니다.
이제 재부팅하면 이 문제가 사라질 것이라고 생각합니다. 주요 질문은 이러한 프로세스를 추적하기 위해 무엇을 사용할 수 있습니까?
top -c
도움이 되지 않습니다. pgrep bash
단지 다른 PID 목록을 제공하고 lsof /bin/bash
실행 중인 bash 인스턴스를 나열하고 pstree
이를 별도의 프로세스로 표시합니다.
관련이 있는 경우 Linux Mint Debian, 커널 3.2.0-4-amd64, GNU bash, 버전 4.2.36(1)-릴리스를 실행하고 있습니다.
편집하다:
재부팅했는데(해야만 했음) 예상대로 문제가 사라졌습니다. 그러나 나는 그러한 프로세스를 추적하는 방법에 대한 유용한 제안에 여전히 관심이 있습니다.
답변1
출력을 살펴보십시오 lsof | grep 'bash.*cwd'
. 그러면 프로세스의 현재 작업 디렉터리가 표시됩니다.
그렇다면 pstree
출력을 확인하십시오. 그렇지 않은 경우 출력을 살펴보십시오 ps aux -H
. 이는 어떤 프로세스가 이러한 신비한 프로세스를 소유하고 있는지 알려줍니다.
의심스러운 것이 있는지 구성 파일을 확인하기 시작하십시오. 다음은 확인해야 할 사항의 불완전한 목록입니다.
~/.bash*
~/.profile
/etc/profile
/etc/bash*
/etc/cron.*/*
이는 프로세스를 생성하기 위해 실행된 파일 이름이 포함된 매개변수 0을 포함하여 프로세스에 대한 매개변수를 찾을 수 없음을 [process name]
의미합니다 . ps
이는 lsof /bin/bash
해당 프로세스를 찾을 수 없음을 의미합니다.
답변2
다음 출력도 볼 수 있습니다.
ps -p <pid> -o pid,user,tty,comm,args
일부 셸 스크립트는 출력에 또는 로 표시되지만 /bin/bash
출력의 매개변수는 실행 중인 정확한 스크립트를 제공해야 합니다.perl
top
args
ps