lsof 설치 없이 해당 포트를 열고 있는 프로세스 확인하는 법
2012.10.17 18:55
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
1. 열고있는 포트번호 조회. 21번 포트를 열고 있는 프로세스를 조회하고 싶을 경우.
[root :/]# netstat -anA | grep LISTEN
f1000d0001bed390 tcp 0 0 *.21 *.* LISTEN
f1000d00002e3390 tcp4 0 0 *.22 *.* LISTEN
f1000d0002a7ab90 tcp4 0 0 *.80 *.* LISTEN
f1000d0000458390 tcp4 0 0 *.111 *.* LISTEN
f1000d0002776390 tcp4 0 0 *.443 *.* LISTEN
위의 결과에서 f1000d0001bed390 는 소켓주소임.
2. 소켓주소로부터 PID 조회
[root :/]# rmsock f1000d0001bed390 tcpcb
The socket 0x1bed000 is being held by proccess 626780 (inetd).
본래 rmsock 은 해당 소켓주소에 해당하는 ESTABLISH 되어있는 소켓을 제거하는 명령어이다.
하지만 프로세스가 열고 있는 메인 소켓주소를 삭제하려고 하면 경고메시지로 어떤 프로세스가 물고 있으므로
종료할수 없다는 메시지를 뿌리고 종료가 안된다는 점에 착안하여 꼼수로써 PID를 알아낼수 있다.
3. 프로세스 조회
[root :/]# ps -ef | grep 626780
root 626780 1 0 9¿ù 28ÀÏ - 0:00 /usr/sbin/inetd -d
이제 해당 프로세스를 알아냈다.