숏컷 코드
ps aux
ps -ef
pgrep -af nginx
top
kill <pid>
kill -TERM <pid>
kill -KILL <pid>| 목적 | 명령 |
|---|---|
| 전체 프로세스 목록 | ps aux 또는 ps -ef |
| 이름으로 PID 찾기 | pgrep -af <name> |
| 실시간 CPU/메모리 관찰 | top |
| 정상 종료 요청 | kill <pid> 또는 kill -TERM <pid> |
| 강제 종료 | kill -KILL <pid> |
| 현재 사용자 프로세스 확인 | ps -u "$USER" |
프로세스 확인
Linux에서 실행 중인 프로그램은 프로세스이고, 각 프로세스는 PID를 가집니다. ps는 특정 시점의 프로세스 목록을 보여 주고, top은 CPU와 메모리 사용량을 실시간으로 갱신합니다. 문제가 되는 프로세스를 찾을 때는 이름, PID, 사용자, CPU/메모리 사용량을 함께 봅니다.
ps aux | grep nginx
pgrep -af nginx
topgrep으로 찾으면 grep 프로세스 자체가 결과에 섞일 수 있습니다. 이름 검색이 목적이면 pgrep -af가 더 직접적입니다.
kill은 프로세스를 죽이는 명령이라기보다 signal을 보내는 명령이다
kill <pid>의 기본 signal은 보통 TERM입니다. 이는 프로세스에게 정상 종료 기회를 줍니다. 로그 flush, 연결 종료, 임시 파일 정리 같은 마무리를 할 수 있습니다. KILL은 커널이 강제로 종료시키므로 프로세스가 정리 코드를 실행할 수 없습니다.
kill -TERM 1234
sleep 2
kill -KILL 1234선택 기준
| 상황 | 선택 |
|---|---|
| 프로세스가 무엇인지 확인 | ps aux, pgrep -af |
| 자원 사용량 확인 | top |
| 정상 종료 요청 | kill -TERM |
| 멈춰서 반응하지 않음 | 마지막 수단으로 kill -KILL |
| 서비스 프로세스 관리 | systemctl 우선 |
| 같은 이름 프로세스가 많음 | PID와 command line 확인 |
주의할 점
systemd가 관리하는 서비스 프로세스를 직접 kill하면 service manager가 다시 띄우거나 상태 추적이 꼬일 수 있습니다.
서비스는 먼저 systemctl stop, restart, status로 다루십시오.
systemctl status nginx
sudo systemctl restart nginx참고 링크
2 sources