| Table of Contents |
|---|
개요
...
이 문서는 Redhat 계열 Linux 서버에서 OS 부팅 시작 및 종료 시 Altibase 서버 프로세스를 자동 시작하는 방법에 관해 설명합니다.
버전
Altibase 4 이상
OS
Linux
등록 방법
자동 시작 스크립트 샘플
자동 시작 스크립트는 아래와 같은 상황에서 동작하도록 작성했습니다.
- 하나의 서버에 1개의 Altibase 서버가 운용
- OS 유저 altibase 에서 Altibase 서버를 설치하고 startup/shutdown 권한을 가짐
- bash 쉘에서 동작
- chkconfig 유틸리티 사용
이 스크립트는 샘플 파일입니다. 고객사 OS 유저의 환경 설정에 따라 의도와 다르게 동작할 수도 있으니 반드시 테스트하여 정상 수행 여부를 확인하시기 바랍니다.
/etc/init.d 에 스크립트 등록
자동 시작 스크립트 altibased 파일을 /etc/init.d 디렉토리에 업로드합니다.
스크립트 수정
스크립트 상단 user 변수를 고객사 환경에 맞게 변경합니다.
DB를 자동으로 시작, 종료하게 하는 방법에 대하여 설명합니다.
하나의 서버에서 1개의 Altibase 서버를 운영시 사용하며, Linux OS의 root 계정으로 모든 항목을 등록 하여야 합니다.
Redhat 계열 v6와 v7으로 나누어 가이드 합니다.
- Altibase v4 이상
- Red Hat Enterprise Linux 7 이상
- Red Hat Enterprise Linux 6 이하
| Note |
|---|
이 문서와 관련된 오류 및 개선사항은 기술지원포털 또는 기술지원센터로 문의주시기 바랍니다.
|
| Note |
|---|
이 문서는 정보 제공을 목적으로 제공되며, 사전에 예고 없이 변경될 수 있습니다. 이 문서는 오류가 있을 수 있으며, 상업적 또는 특정 목적에 부합하는 명시적, 묵시적인 책임이 일절 없습니다. 이 문서에 포함된 Altibase 제품의 특징이나 기능의 개발, 발표 등의 시기는 Altibase 재량입니다. Altibase는 이 문서에 대하여 관련된 특허권, 상표권, 저작권 또는 기타 지적 재산권을 보유할 수 있습니다. |
RedHat 계열 v7 이상
...
Redhat 계열의 v7 이상에서는 SELinux(Security Enhanced Linux)의 상태를 확인하여 enabled이라면 current mode를 permissive 로 변경해야 됩니다.
SELinux 상태 및 모드의 영구 변경 가이드는 다음의 URL을 참조하세요
Redhat SELinux는 OS의 정책에 따라 변경을 하여야 합니다.
Altibase 자동 시작 및 종료 서비스 작성
...
- File Name : altibased.service
- File Path : /usr/lib/systemd/system
altibased.service 스크립트 작성
Code Block theme DJango language sql [root@localhost] # vi altibased.serviceCode Block theme DJango language sql [Unit] Description=AltibaseAutoStartStop After=network.target syslog.target [Service] Type=forking User=altibase Group=altibase LimitNOFILE=1048576 LimitNPROC=infinity TimeoutSec=0 KillMode=none ExecStart=/etc/rc.d/init.d/altibase start ExecStop=/etc/rc.d/init.d/altibase stop [Install] WantedBy=multi-user.target
주요항목 설명
Description서비스 설명User수행될 OS 계정명GroupOS 계정의 GroupExecStart서비스 시작 시 수행할 파일ExecStop서비스 종료 시 수행할 파일
altibased.service 작성 후 파일 권한을 755로 권한 변경을 합니다.
Code Block theme DJango language sql [root@localhost] # chmod 755 altibased.service
Altibase 서비스에서 수행할 파일 작성
...
altibased.service에서 수행할 자동 시작, 종료 스크립트를 작성합니다.
- File Name : altibase
- File Path : /etc/rc.d/init.d
altibase 스크립트 작성
Code Block theme DJango language sql [root@localhost] # vi altibaseAltibase의 환경 파일 위치는 사용자 환경에 맞게 변경하여야 합니다.
Code Block theme DJango language sql #!/bin/bash # Startup Script for the Altibase Server # path: /etc/rc.d/init.d/altibase # chkconfig: 345 90 10 # processname: altibase . /home/altibase/altibase_home/conf/altibase_user.env case "$1" in start) echo "Startup altibase: " ${ALTIBASE_HOME}/bin/server start ;; stop) echo "Shutdown altibase: " ${ALTIBASE_HOME}/bin/server stop ;; *) echo "Usage: service altibase {start | stop}" exit 1 esac exit 0altibase 작성 후 파일 권한을 755로 권한 변경을 합니다.
Code Block theme DJango language sql [root@localhost] # chmod 755 altibase
altibased.service 심볼릭 링크 설정
...
작성한 서비스 파일 altibased.service 파일을 다음의 위치에서 심볼릭 링크로 존재하여야 합니다.
| Code Block | ||||
|---|---|---|---|---|
| ||||
[root@localhost] # cd /etc/systemd/system/multi-user.target.wants
[root@localhost] # ln -s /usr/lib/systemd/system/altibased.service altibased.service ==> 심볼릭 링크 설정 |
systemctl에 altibased.service 등록 및 테스트
...
systemctl에 altibased.service를 등록하여야 합니다.
| Code Block | ||||
|---|---|---|---|---|
| ||||
[root@localhost] # systemctl enable altibased.service ==> altibased.service 등록
[root@localhost] # systemctl start altibased.service ==> altibase start 테스트
[root@localhost] # systemctl stop altibased.service ==> altibase stop 테스트 |
서버 종료, 서버 기동 하면서 $ALTIBASE_HOME/trc에 Altibase 정상적으로 중지 및 시작 되는지 확인합니다.
systemctl 상태 확인
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
[root@localhost] # systemctl status altibased.service |
SELinux 모드 변경 및 상태 확인
...
RedHat 계열 v7 이상에서의 SELinux 모드 변경 및 상태확인 방법입니다.
SELinux 모드 확인
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
[root@localhost] # sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing ==> 현재 SELinux 모드
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 31 |
SELinux Current mode 임시 변경
...
SELinux의 Current mode를 임시로 변경하면 OS 재기동 후 원래 상태로 변경됩니다.
Current mode를 임시로 변경하며 OS 재기동 시 Altibase Process가 자동으로 시작하지 않습니다.
| Code Block | ||||
|---|---|---|---|---|
| ||||
[root@localhost] # setenforce 0 ==> current mode를 permissive mode로 변경
[root@localhost] # setenforce 1 ==> current mode를 enforoing mode로 변경 |
SELinux Current mode 영구 변경
...
SELinux의 Current mode를 영구 변경하기 위해서는 다음의 설정 파일을 변경하여야 합니다.
/etc/selinux/config 파일의 SELINUX 항목을 permissive 값으로 변경 후 OS를 재기동합니다.
| Code Block | ||||
|---|---|---|---|---|
| ||||
$ vi /etc/init.d/altibased #[root@localhost] # cd /etc/selinux [root@localhost] # vi config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. #SELINUX=enforcing # 기존 enforcing SELINUX=permissive # 변경 permissive # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. |
OS 재기동 후 SELinux 상태 확인
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
[root@localhost] # sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: permissive
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 31 |
Red Hat 계열 v6 이하
...
RedHat 계열 v6에서는 다음의 순서로 Altibase Process를 자동 시작, 종료를 진행합니다.
자동 시작 및 종료 스크립트 작성
...
altibased 자동 시작, 종료 스크립트를 작성합니다.
- File Name : altibased
- File Path : /etc/init.d
altibased 스크립트 작성
Code Block theme DJango language sql [root@localhost] # vi altibased
user 항목은 OS에 접속한 OS 계정으로 변경한다.
Code Block theme DJango language sql #!/bin/bash # # altibase # # chkconfig: 2345 20 80 # description: ALTIBASE process startup user=altibase start() { echo -e "`date +"%Y-%m-%d %H:%M:%S"` : Altibase Server Startup \n" >> /var/log/${user}_altibased.log 2>&1 ALTIBASE_STATUS=`ps -ef
...
| grep
...
스크립트 실행 권한 변경
${user} | grep 'altibase -p' | grep -v grep | wc -l` if [ $ALTIBASE_STATUS -ne 1 ]; then su - ${user} -c "server start" >> /var/log/${user}_altibased.log 2>&1 fi } stop() { echo -e "`date +"%Y-%m-%d %H:%M:%S"` : Altibase Server Shutdown \n" >> /var/log/${user}_altibased.log 2>&1 ALTIBASE_STATUS=`ps -ef | grep ${user} | grep 'altibase -p'| grep -v grep | wc -l` if [ $ALTIBASE_STATUS -eq 1 ]; then su - ${user} -c "server stop" >> /var/log/${user}_altibased.log 2>&1 fi } case "$1" in start) start ;; stop) stop ;; esac이 스크립트는 샘플 파일입니다. 고객사 OS 유저의 환경 설정에 따라 의도와 다르게 동작할 수도 있으니 반드시 테스트하여 정상 수행 여부를 확인하시기 바랍니다.
로그는 /var/log/${user}_altibased.log 에 남도록 설정했습니다.
altibased 수행 권한 변경
...
작성한 altibased 파일의 권한을 변경합니다.
| Code Block | ||||
|---|---|---|---|---|
| ||||
$[root@localhost] # chmod +x altibased [root@localhost] $# ls -l altibased -rwxr-xr-x 1 root root 811 Sep 3 13:50 /etc/init.d/altibased |
chkconfig 등록 및 확인
...
chkconfig
...
유틸리티를 이용하여 서비스를 등록 합니다.
| Code Block | ||||
|---|---|---|---|---|
| ||||
$[root@localhost] # chkconfig --add altibased |
chkconfig 등록 확인
| Code Block | ||||
|---|---|---|---|---|
| ||||
$ ==> 서비스 등록 [root@localhost] # ls -l /etc/rc.d/rc*.d/K*alti* $ ==> 서비스 등록 확인 [root@localhost] # ls -l /etc/rc.d/rc*.d/S*alti* ==> 서비스 등록 확인 |
로그
로그는 /var/log/${user}_altibased.log 에 남도록 설정했습니다.