'prcview'에 해당되는 글 6

  1. 2011.06.10 실행 경로, 사용중인 포트 찾기
  2. 2011.03.08 특정 포트를 사용하고 있는 프로그램 찾기
  3. 2010.06.04 윈도우 프로세스 - 동일한 실행 파일을 사용한 서비스
  4. 2009.12.27 윈도우 프로세스 - 이클립스에서 실행시킨 톰캣의 프로세스
  5. 2009.12.27 윈도우에서 기본으로 실행되는 java 명령어의 위치는?
  6. 2009.08.06 PrcView

실행 경로, 사용중인 포트 찾기

고객사에 기술지원을 하다 보면 관리가 제대로 되지 않아 WAS 를 어떻게 실행시키는지, 포트번호가 어떻게 되는지도 몰라서 난감할때가 많다.
이럴때 찾는 방법

- 포트번호를 알고 있으면 먼저 netstat 로 PID 를 확인한다.
PrcView 를 통해서 실행 경로를 찾는다.

- 콘솔로 실행시킨 경우 콘솔제목을 알면 tasklist 로 PID 를 확인한다.
(netstat 로 포트를 확인할 수 있다.)
PrcView 를 통해서 실행 경로를 찾는다.

- 서비스로 실행시킨 경우에는 서비스 속성을 통해서 확인한다.

특정 포트를 사용하고 있는 프로그램 찾기

팀원이 Tomcat 이 죽은거 같다고 한다.
웹페이지 접속이 안된다고 하는데.

- netstat 로 확인해 보니 정상적이다.
혹시 이 프로세스가 80 포트를 점유하고 있을수도 있으므로 PrcView 로 확인해본다.


역시 Tomcat 이다.
이 Tomcat 이 어떻게 실행되었는지 확인해 본다.
Original Filename 이 prunsrv.exe 다.


Process Tree 로 보니 services.exe 아래에 있다.


윈도우 프로세스 - 동일한 실행 파일을 사용한 서비스

개발자가 프로그램을 올리고 콘솔에서 WAS를 다시 시작시킴.
WAS가 내려가 있는 줄 알고 다시 시작했고(WAS를 내리지 않고 작업을 했음) 사이트가 제대로 돌아가는지 확인은 하지 않음.
사이트가 돌아가지 않아 서버관리자가 재부팅을 시킴.
서비스에 등록된 WAS가 동작해서 서비스함.

> netstat -nao | findstr LIST | findstr :80
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       1920
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       1900

> tasklist | findstr httpd
httpd.exe                     1708 Console //80
httpd.exe                     1732 Console //8080

> tasklist | findstr java
java.exe                      1900 Console //8080
java.exe                      1920 Console //80

> tasklist /m | findstr httpd
httpd.exe                     1708 ntdll.dll, kernel32.dll, WS2_32.dll,
httpd.exe                     1732 ntdll.dll, kernel32.dll, WS2_32.dll,
                                   libhttpd.dll, USER32.dll, GDI32.dll,
                                   libhttpd.dll, USER32.dll, GDI32.dll,
                                   libhttpd.dll, USER32.dll, GDI32.dll,

테스트용으로 등록해뒀는 서비스가 8080포트로 동작하고 있었음.
사용하지 않는 서비스는 사용않함으로 둘 것.

PrcView에서 1708 httpd.exe의 커맨드라인 확인
"c:\resin-pro-3.0.25\httpd.exe" -service -java_home  C:\Java\jdk1.5.0_12 -resin_home  c:\resin-pro-3.0.25  -J-server  -Xms512m  -Xmx512m  -XX:PermSize=256m  -XX:MaxPermSize=256m

서비스에 등록된 실행경로
"c:\resin-pro-3.0.25\httpd.exe" -service -java_home  C:\Java\jdk1.5.0_12 -resin_home  c:\resin-pro-3.0.25  -J-server  -Xms512m  -Xmx512m  -XX:PermSize=256m  -XX:MaxPermSize=256m

1708은 80포트를 사용하는 서비스임.

테스트 WAS의 실행경로
"C:\resin-pro-3.0.25\httpd.exe" -service -java_home  C:\Java\jdk1.5.0_12 -resin_home  C:\resin-pro-3.0.25  -J-server  -Xms512m  -Xmx512m  -XX:PermSize=256m  -XX:MaxPermSize=256m  -conf  conf/test.conf  -server  test

PrcView에서 1920 java.exe의 커맨드라인
"C:\Java\jdk1.5.0_12\bin\java.exe" "-server" "-Xms512m" "-Xmx512m" "-XX:PermSize=256m" "-XX:MaxPermSize=256m" -classpath "c:\resin-pro-3.0.25\classes;c:\resin-pro-3.0.25\lib\resin.jar;C:\Java\jdk1.5.0_12\lib\tools.jar;C:\Java\jdk1.5.0_12\jre\lib\rt.jar;c:\resin-pro-3.0.25\lib\activation.jar;..." -Dresin.home="c:\resin-pro-3.0.25" -Dserver.root="c:\resin-pro-3.0.25" -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl com.caucho.server.resin.Resin -socketwait 1029

> netstat -nao | findstr 1029
  TCP    127.0.0.1:1029         0.0.0.0:0              LISTENING       1708
  TCP    127.0.0.1:1029         127.0.0.1:1036         ESTABLISHED     1708
  TCP    127.0.0.1:1036         127.0.0.1:1029         ESTABLISHED     1920

- PrcView로 프로세스 트리를 확인해 봄.


- 서비스가 아닌 구동 스크립트로 시작한 경우의 프로세스

직접 실행시킨 경우 사용자가 Administrator로 되어 있고 세션 이름이 RDP-...(원격데스크톱으로 들어갔음, 직접 들어가면 Console인가?)이다.
서비스로 구동시켰을때는 SYSTEM이고 세션 이름이 Services이다.

- ptree, tlist 등의 도구를 활용하면 비슷한 결과를 얻어낼 수 있다.

윈도우 프로세스 - 이클립스에서 실행시킨 톰캣의 프로세스


[todo] java.library.path 관련해서 분석해 볼 것.

윈도우에서 기본으로 실행되는 java 명령어의 위치는?

PrcView의 Process Monitor로 확인해보면 C:\WINDOWS\system32\java.exe가 실행된다.
이 경로는 시스템 Path에서 제일 앞에 기술되어 있다.

[todo] 시스템에 설치된 jre를 사용하지 않고 내장된 jre를 사용하는 was인 경우도 확인해보자.

PrcView

- Process Viewer  for Windows
설치가 필요없다.

- 프로세스를 실행시킨 프로그램 확인하기

- Process Monitor를 띄우면 이후에 실행되는 프로세스를 추적할 수 있다.

- 로드된 DLL도 확인할 수 있다.

- 메모리도 확인할 수 있다.
http://www.ibm.com/developerworks/kr/library/j-memusage/#N10267