[CPU 점유율이 높은 프로세스 종료시키기]

 

리눅스에서는 기본적으로 프로세스의 CPU 점유율이 한 자릿수입니다.

그런데 만일 두 자릿수가 존재한다면, 이는 해킹을 시도하는 백도어 파일일 가능성이 높습니다.

오늘 실습에서는 두 자릿수 프로세스를 백그라운드로 실행하고, 프로세스를 찾아 없애는 작업을 해보겠습니다.

 

일단 CPU를 잡아먹는 프로세스를 백그라운드로 실행시킵니다.

yes > /dev/null &

& 기호는 백그라운드에서 실행시킨다는 뜻입니다.

 





이 루프 계속 실행되는 것을 종료 시킬때는 ctrl + c


jobs 명령으로 백그라운드에서 돌아가는 프로세스를 확인할 수 있습니다.

이제 CPU 상태를 살펴 보겠습니다.

>top


 


CPU의 전반적인 상황이 실시간으로 보여집니다. 5초 간격으로 새로고침이 되는 중입니다.

Shift + P 키를 누르면, CPU 점유율이 높은 순으로 목록이 떨어집니다.


 

맨 위에 yes라는 프로세스가 무려 CPU의 98.9%를 차지하고 있네요. 엄청난 수치입니다.


 

해당 프로세스의 PID를 기억해둡니다.

PID: Process ID

 

이 프로세스를 없애기 위해서는, KILL 시그널을 보내줘야 합니다. 다음과 같은 명령어를 실행합니다.

>kill -9 20519

20519가 yes의 PID 입니다. kill -9를 쓰면 특정 프로세스를 종료시킬 수 있습니다.

 

*PID가 아닌 프로세스명으로 명령을 내리기 위해서는?

>killall 프로세스명

예를 들어 여기에서는 killall yes를 눌러도 프로세스 종료가 됩니다. 하지만 우리는 kill -9를 적용해보겠습니다.


 

네, 매우 정직하게도 죽었다고 메시지가 나왔습니다.

제대로 죽었는지 CPU에서 확인해봅시다.

>top



 

yes가 없어진 것을 확인할 수 있습니다.

 

 

**Tip!

top 상태를 벗어나지 않고 KILL 시그널을 수행하려면?

k 키를 눌러 PID를 입력하고 해당 시그널 번호를 입력해주면 수행된다.

ex> top → Shift+P → PID 확인 후 k 키→ PID → 9 (프로세스 종료)




ref : https://blog.naver.com/7meaning/60203209840


반응형

+ Recent posts