Tuxedo Admin 계정이 아닌 계정에서 tmboot/tmshutdown의 기능 제한을 위한 Wrapping 프로그램(tmstart.c)을 작성한다.
Wrapping 프로그램은 C 언어을 이용 tmboot/tmshutdown command를 "tmboot -s servername or tmboot -i server-id or tmshutdown -s servername or tmshutdown -i server-id”만 실행되도록 별도의 실행파일을 만든다.
1.Tuxedo 관리자 이외의 계정으로 "tmboot, tmshutdown"을 실행
- 프로그램명 : tmstart, tmstop
- 프로그램 source 파일(tmstart.c)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char *tux_dir, cmdstr[1024];
int i = 0;
memset(cmdstr, 0x00, sizeof(cmdstr));
if (argc != 3) {
printf("Usage : %s -s Servername or %s -i Server-id\n\n", argv[0], argv[0]);
exit(-1);
}
if ((tux_dir = getenv("TUXDIR")) == (char *)0) {
printf("env variable TUXDIR Not Set !!\n");
exit(-1);
}
sprintf(cmdstr, "%s/bin/", tux_dir);
if (strcmp(argv[0], "tmstart") == 0) {
strcat(cmdstr, "tmboot ");
} else if (strcmp(argv[0], "tmstop") == 0) {
strcat(cmdstr, "tmshutdown ");
} else {
printf("Usage : %s -s Servername or %s -i Server-id\n\n", argv[0], argv[0]);
return(-1);
}
if ((strncmp(argv[1], "-i", 2) == 0) || (strncmp(argv[1], "-s", 2) == 0)) {
strcat(cmdstr, argv[1]);
strcat(cmdstr, " " );
strcat(cmdstr, argv[2]);
} else {
printf("You can use -i or -s options only !\n\n");
return(-1);
}
return(system(cmdstr));
}
- C 프로그램 컴파일
> cc -v -o tmstart tmstart.c
- 실행파일 복사(tmstop)
> cp tmstart tmstop
- 실행파일 권한부여(+s)
Tuxedo Admin 계정이 아닌 계정에서 서버 프로세스를 Start, Stop할 때 boot된 서버 프로세스가 Tuxedo Admin 계정으로 실행되도록 Effective User를 Tuxedo Admin 계정으로 설정한다.
> chmod +s tmstart tmstop
권한을 부여한 tmstart, tmstop 실행파일을 $TUXDIR/bin 디렉토리에 위치 시킨다.
2.설정 절차
- Tuxedo 관련 환경변수 설정
export TUXDIR=/tuxedo
export BASDIR=/home/tuxadmin
export TUXCONFIG=$BASDIR/env/tuxconfig
export LIBPATH=$TUXDIR/lib:$LIBPATH
export PATH=$TUXDIR/bin:$PATH
- 프로그램 실행(서버 프로세스 기동)
> tmstart -s 서버명 or tmstart -i 서버ID
- 프로그램 실행(서버 프로세스 종료)
> tmstop -s 서버명 or tmstop -i 서버ID
3.주의 사항
- Tuxedo Admin 계정으로 작업(컴파일, 권한부여)해야 한다.
- tmstart, tmstop 실행 파일에 +s 권한 부여해야 한다.
[tuxadmin@devapp01:/tuxedo/bin]ls -al tms*
-rwsrwsr-x 1 tuxadmin tux 8185 Apr 08 10:34 tmstart
-rw-rw-r-- 1 tuxadmin tux 1066 Apr 08 10:34 tmstart.c
-rwsrwsr-x 1 tuxadmin tux 8185 Apr 08 10:34 tmstop
실행 파일에 권한을 부여하지 않으면 오류가 발생하며, 오류 메시지는 다음과 같다.
tmboot: CMDTUX_CAT:1113: ERROR: Must be the administrator to execute this command
- TUXDIR, TUXCONFIG, PATH, LIBPATH 환경변수를 설정해야 하며, 환경변수를 설정하지 않으면 오류가 발생하며, 오류 메시지는 다음과 같다.
tmshutdown: internal error: CMDTUX_CAT:1360: ERROR: configuration file not found
'▶ Tuxedo > 기술자료' 카테고리의 다른 글
Tuxedo domain 관련 정보 (0) | 2012.02.27 |
---|---|
Tuxedo Admin 계정이 아닌 개발자 계정에서 서버 프로세스의 시작/종료 권한부여 (0) | 2012.02.24 |
truss를 사용한 프로그램 및 오류 분석 (0) | 2012.02.24 |
Tuxedo 서비스를 서버 프로세스로 Grouping하는 방안 (0) | 2012.02.24 |
▶ 오브젝트와 라이브러리 관련된 명령어(AIX) (0) | 2012.02.23 |