728x90
개요
WEBTOB를 기동하였으나, Port LISTEN이 되지 않음.
WEBTOB의 IPCPerm 설정이 되지 않고, htl을 root로 설정하게 되어, 기동 시 htld의 퍼미션 거부로 인한 Port의 LISTEN이 되지 않음.
현상
다음과 같은 로그가 발생하며 WEBTOB내 지정된 Port들이 LISTEN 하지 않음
[2018/11/04:05:47:49] HTH-12518 W HTH0072: Failed to connect to HTL. fail count=1, path=jeus/webserver/path/htld errno=13(Permission denied)
[2018/11/04:05:47:51] HTH-12518 W HTH0072: Failed to connect to HTL. fail count=2, path=jeus/webserver/path/htld errno=13(Permission denied)
주의하여야 할 점은 이렇게 htld가 Permission denied를 당했음에도 불구하고, 프로세스를 검색하면 htl 프로세스가 보이며, 심지어 wsadmin에서 server 상태조회를 해보면 정상으로 보인다.!
생각해보면.. 받아주는 포트가 막혀있는 상황일 뿐이지.. server는 멀쩡했을 것이다...
아무튼 syslog를 자세히 들여다 보지 않는 이상 발견하기 굉장히 모호한 현상이다.
(wsadm) [2018/11/04:05:49:20]: si
------------------------------------------------------------------------------------------
hth svrname (svri) status reqs count cqcnt aqcnt qpcnt emcnt rscnt rbcnt
------------------------------------------------------------------------------------------
0 html ( 0) RDY 0 0 0 0 0 0 0 0
0 fep ( 1) RDY 0 0 0 0 0 0 0 0
원인
왜 htld가 Permission denied를 당했는지 추적을 해보았다.
[jeus/webserver/path]ll
total 6
srwx------ 1 jeus tmax 0 Nov 5 10:00 hthd000
srwx------ 1 root tmax 0 Nov 5 10:00 htld
-rw------- 1 jeus tmax 1536 Nov 5 10:00 webtob.pid
srwx------ 1 jeus tmax 0 Nov 5 10:00 wsmd
그렇다면 htld는 왜 Permission이 저렇게 되어 있는 것인가?
webtob 설정에서 정답을 찾을 수 있었다.
$WEBTOB_HOME/config/http.m의 IPCPerm 이라는 설정을 보자
IPCPerm
● 종류: Numeric
● 범위: 0600 ~ 0700
● 기본값: 0700
● WebtoB 내부 프로세스(WSM, HTL, HTH, HTMLS, CGIS 등) 및 관리 프로세스(wsadmin) 간의 내부 통신(IPC)에 사용하는 named-pipe의 접근권한을 설정한다.
참고
UNIX/Linux 환경에서만 사용할 수 있다.
그렇다. IPCPerm을 지정하지 않아, 기본값이 적용되었던 것이다.
해결방안
$WEBTOB_HOME/config/http.m의 IPCPerm을 다음과 같이 설정하자.
*NODE
IPCPERM = 0777,
※참고사항
WEBTOB에서 1024 이하의 Port를 사용하려면 System계정인 root의 권한이 필요하다.
따라서 $WEBTOB_HOME/bin/htl의 권한에 setuid를 부여 해주어야 한다.
WEBTOB를 기동하였으나, Port LISTEN이 되지 않음.
WEBTOB의 IPCPerm 설정이 되지 않고, htl을 root로 설정하게 되어, 기동 시 htld의 퍼미션 거부로 인한 Port의 LISTEN이 되지 않음.
현상
다음과 같은 로그가 발생하며 WEBTOB내 지정된 Port들이 LISTEN 하지 않음
[2018/11/04:05:47:49] HTH-12518 W HTH0072: Failed to connect to HTL. fail count=1, path=jeus/webserver/path/htld errno=13(Permission denied)
[2018/11/04:05:47:51] HTH-12518 W HTH0072: Failed to connect to HTL. fail count=2, path=jeus/webserver/path/htld errno=13(Permission denied)
주의하여야 할 점은 이렇게 htld가 Permission denied를 당했음에도 불구하고, 프로세스를 검색하면 htl 프로세스가 보이며, 심지어 wsadmin에서 server 상태조회를 해보면 정상으로 보인다.!
생각해보면.. 받아주는 포트가 막혀있는 상황일 뿐이지.. server는 멀쩡했을 것이다...
아무튼 syslog를 자세히 들여다 보지 않는 이상 발견하기 굉장히 모호한 현상이다.
(wsadm) [2018/11/04:05:49:20]: si
------------------------------------------------------------------------------------------
hth svrname (svri) status reqs count cqcnt aqcnt qpcnt emcnt rscnt rbcnt
------------------------------------------------------------------------------------------
0 html ( 0) RDY 0 0 0 0 0 0 0 0
0 fep ( 1) RDY 0 0 0 0 0 0 0 0
원인
왜 htld가 Permission denied를 당했는지 추적을 해보았다.
[jeus/webserver/path]ll
total 6
srwx------ 1 jeus tmax 0 Nov 5 10:00 hthd000
srwx------ 1 root tmax 0 Nov 5 10:00 htld
-rw------- 1 jeus tmax 1536 Nov 5 10:00 webtob.pid
srwx------ 1 jeus tmax 0 Nov 5 10:00 wsmd
그렇다면 htld는 왜 Permission이 저렇게 되어 있는 것인가?
webtob 설정에서 정답을 찾을 수 있었다.
$WEBTOB_HOME/config/http.m의 IPCPerm 이라는 설정을 보자
IPCPerm
● 종류: Numeric
● 범위: 0600 ~ 0700
● 기본값: 0700
● WebtoB 내부 프로세스(WSM, HTL, HTH, HTMLS, CGIS 등) 및 관리 프로세스(wsadmin) 간의 내부 통신(IPC)에 사용하는 named-pipe의 접근권한을 설정한다.
참고
UNIX/Linux 환경에서만 사용할 수 있다.
그렇다. IPCPerm을 지정하지 않아, 기본값이 적용되었던 것이다.
해결방안
$WEBTOB_HOME/config/http.m의 IPCPerm을 다음과 같이 설정하자.
*NODE
IPCPERM = 0777,
※참고사항
WEBTOB에서 1024 이하의 Port를 사용하려면 System계정인 root의 권한이 필요하다.
따라서 $WEBTOB_HOME/bin/htl의 권한에 setuid를 부여 해주어야 한다.
728x90
'IT > MiddleWare(WEB WAS)' 카테고리의 다른 글
[WWBTOB/JEUS] Network의 문제로 기인한 Web 서비스 지연 및 불가 (0) | 2018.11.22 |
---|---|
[JEUS]Hotspot Compile 시 비정상종료 발생 (0) | 2018.11.20 |
[WEBTOB]하위extension_rewriting불가 (0) | 2018.11.19 |
[JEUS]큰 크기의 세션으로 인한 Queing (0) | 2018.11.09 |
[JEUS6]2중화 구성환경에서 세션 단절 현상 (0) | 2018.11.07 |