실행 중인 프로세스를 찾을 땐 ps와 grep을 함께 사용한다. 사실 이전에 쓴 리눅스 프로세스 실행한 사용자 확인 방법 과 같은 내용이긴 하다. 결국 출력 결과를 grep으로 필터링하는 게 전부다.
1. 전체 프로세스 출력
[root@newhost ps]# ps -ef
해당 명령어로 시스템에서 실행 중인 모든 프로세스를 출력해 본다.
이 출력을 한줄한줄 확인하는 것도 방법이다.
2. 프로세스명 필터링
하지만 grep으로 필터링 하면 쉽게 검색할 수 있다.
ps -ef | grep [프로세스명]
이런 형태로 프로세스를 검색한다. 꼭 전체 프로세스명을 정확히 적을 필요는 없다.
[root@newhost ps]# ps -ef | grep maria
mysql 1204 1 0 21:08 ? 00:00:01 /usr/sbin/mariadbd
root 3167 3079 0 21:17 pts/1 00:00:00 grep --color=auto maria
mariadb를 찾으면 maria 정도만 넣어도 해당 단어가 포함된 라인을 찾아준다.
참고로
grep --color=auto maria
이 출력은 grep을 쓰면서 출력되는 프로세스이기 때문에 실제 검색 결과와는 관련이 없다.
ps grep을 처음 써보면 해당 출력을 보고 grep으로 잡은 프로세스가 있는 걸로 착각할 수가 있으니 주의해야 된다.
이렇게 아무거나 grep으로 잡아도 grep을 썼다는 출력이 함께 나온다.
grep –color=auto 이외의 출력이 있어야 잡히는 것이다.
3. 프로세스명을 모르면?
찾으려는 프로세스명을 모르면 검색을 어떻게 하나 생각할 수 있는데 결론부터 말하면 당연히 검색을 할 수가 없다. 뭘 찾으려는지도 모르는데 어떻게 검색을 하겠나.
짐작 가는 단어를 조금씩 변형해서 찾아보거나 ps -ef 출력을 한줄씩 봐야 한다.
또는 해당 프로세스가 포트에 바인딩되어 LISTEN 상태인 프로세스면
netstat -ntlp
로 찾아보는 방법도 있다.