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

개발자가 프로그램을 올리고 콘솔에서 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 등의 도구를 활용하면 비슷한 결과를 얻어낼 수 있다.