[WAS / WebLogic] 3. Script로 Server Start/Stop 시키기

gyurigeem·2023년 1월 4일
0

📒Script로 Server Start/Stop 시키기

Server를 기동시킬 때 백그라운드 실행이 안되는 점과

Managed Server 기동 시 ./startManagedWebLogic.sh 뒤에 Server Name을 입력해야하는 점 등의

불편한 점을 개선하기 위해 Start/Stop Script를 생성하여 사용하고자 한다.


📌프로세스 확인

프로세스가 다 내려가 있는 것을 확인한다.

[gyul@localhost gyul12domain]$ ps -ef|grep java
gyul     25909 23193  0 17:32 pts/1    00:00:00 grep --color=auto java
[gyul@localhost gyul12domain]$

📌Script 생성

script를 저장할 디렉토리를 생성한다.

[gyul@localhost gyul12domain]$ mkdir script
[gyul@localhost gyul12domain]$ cd script
[gyul@localhost script]$ ls -al
total 4
drwxrwxr-x.  2 gyul gyul    6 Jan  3 17:33 .
drwxr-x---. 18 gyul gyul 4096 Jan  3 17:33 ..
[gyul@localhost script]$

스크립트를 생성한다.

📍start_admin.sh

#!/bin/sh

DOMAIN_HOME="/home/gyul/Study/WLS/wls12/domains/gyul12domain"
SERVER_NAME="gyul12_admin"
LOG_DIR=${DOMAIN_HOME}/Logs
LOG_FILENAME=${SERVER_NAME}.out

USER_MEM_ARGS="-D${SERVER_NAME}"
export USER_MEM_ARGS

export DERBY_FLAG="false"

mv ${LOG_DIR}/${SERVER_NAME}/${LOG_FILENAME}  ${LOG_DIR}/${SERVER_NAME}/${LOG_FILENAME}.`date +%Y%m%d%H%M%S`
nohup ${DOMAIN_HOME}/startWebLogic.sh > ${LOG_DIR}/${SERVER_NAME}/${LOG_FILENAME} 2>&1 &
sleep 1
tail -f ${LOG_DIR}/${SERVER_NAME}/${LOG_FILENAME}

📍stop_admin.sh

#!/bin/sh

DOMAIN_HOME="/home/gyul/Study/WLS/wls12/domains/gyul12domain"

${DOMAIN_HOME}/bin/stopWebLogic.sh
 

start_gyul12_1.sh (start_gyul12_2.sh)

#!/bin/sh

DOMAIN_HOME="/home/gyul/Study/WLS/wls12/domains/gyul12domain"
ADMIN_URL="t3://192.168.133.199:19900"
SERVER_NAME="gyul12_1" #gyul12_2
USER="gyul"
LOG_DIR=${DOMAIN_HOME}/Logs
LOG_FILENAME=${SERVER_NAME}.out

USER_MEM_ARGS="-D${SERVER_NAME}"
export USER_MEM_ARGS

mv ${LOG_DIR}/${SERVER_NAME}/${LOG_FILENAME}  ${LOG_DIR}/${SERVER_NAME}/${LOG_FILENAME}.`date +%Y%m%d%H%M%S`
nohup ${DOMAIN_HOME}/bin/startManagedWebLogic.sh ${SERVER_NAME}  ${ADMIN_URL} > ${LOG_DIR}/${SERVER_NAME}/${LOG_FILENAME}  2>&1 &
sleep 1
tail -f ${LOG_DIR}/${SERVER_NAME}/${LOG_FILENAME}

📍stop_gyul12_1.sh (stop_gyul12_2.sh)

#!/bin/sh

DOMAIN_HOME="/home/gyul/Study/WLS/wls12/domains/gyul12domain"
ADMIN_URL="t3://192.168.133.199:19900"
SERVER_NAME="gyul12_1" #gyul12_2

${DOMAIN_HOME}/bin/stopManagedWebLogic.sh  ${SERVER_NAME}  ${ADMIN_URL}

Script 생성 후 실행 권한 부여한다.

[gyul@localhost script]$ pwd
/home/gyul/Study/WLS/wls12/domains/gyul12domain/script
[gyul@localhost script]$ ls -al
total 28
drwxrwxr-x.  2 gyul gyul  147 Jan  3 17:40 .
drwxr-x---. 18 gyul gyul 4096 Jan  3 17:33 ..
-rw-rw-r--.  1 gyul gyul  499 Jan  3 17:39 start_admin.sh
-rw-rw-r--.  1 gyul gyul  516 Jan  3 17:39 start_gyul12_1.sh
-rw-rw-r--.  1 gyul gyul  505 Jan  3 17:40 start_gyul12_2.sh
-rw-rw-r--.  1 gyul gyul  109 Jan  3 17:40 stop_admin.sh
-rw-rw-r--.  1 gyul gyul  218 Jan  3 17:40 stop_gyul12_1.sh
-rw-rw-r--.  1 gyul gyul  208 Jan  3 17:40 stop_gyul12_2.sh
[gyul@localhost script]$ chmod 700 *
[gyul@localhost script]$ ls -al
total 28
drwxrwxr-x.  2 gyul gyul  147 Jan  3 17:40 .
drwxr-x---. 18 gyul gyul 4096 Jan  3 17:33 ..
-rwx------.  1 gyul gyul  499 Jan  3 17:39 start_admin.sh
-rwx------.  1 gyul gyul  516 Jan  3 17:39 start_gyul12_1.sh
-rwx------.  1 gyul gyul  505 Jan  3 17:40 start_gyul12_2.sh
-rwx------.  1 gyul gyul  109 Jan  3 17:40 stop_admin.sh
-rwx------.  1 gyul gyul  218 Jan  3 17:40 stop_gyul12_1.sh
-rwx------.  1 gyul gyul  208 Jan  3 17:40 stop_gyul12_2.sh
[gyul@localhost script]$

📌.out 파일 생성

스크립트 실행을 위해서 해당 경로에 .out 파일이 필요하기 때문에 생성해줘야 한다.

LOG_DIR=${DOMAIN_HOME}/Logs
LOG_FILENAME=${SERVER_NAME}.out

Logs 디렉토리를 생성한 후 각 서버 명의 디렉토리도 생성한다.

[gyul@localhost gyul12domain]$ mkdir Logs
[gyul@localhost gyul12domain]$ cd Logs/
[gyul@localhost Logs]$ ls -al
total 4
drwxrwxr-x.  2 gyul gyul    6 Jan  3 17:43 .
drwxr-x---. 19 gyul gyul 4096 Jan  3 17:43 ..
[gyul@localhost Logs]$ mkdir gyul12_admin
[gyul@localhost Logs]$ mkdir gyul12_1
[gyul@localhost Logs]$ mkdir gyul12_2
[gyul@localhost Logs]$ ls -al
total 4
drwxrwxr-x.  5 gyul gyul   58 Jan  3 17:44 .
drwxr-x---. 19 gyul gyul 4096 Jan  3 17:43 ..
drwxrwxr-x.  2 gyul gyul    6 Jan  3 17:44 gyul12_1
drwxrwxr-x.  2 gyul gyul    6 Jan  3 17:44 gyul12_2
drwxrwxr-x.  2 gyul gyul    6 Jan  3 17:44 gyul12_admin
[gyul@localhost Logs]$

각 디렉토리 안에 서버명.out 파일을 생성한다. (내용은 없어도 된다.)

[gyul@localhost Logs]$ pwd
/home/gyul/Study/WLS/wls12/domains/gyul12domain/Logs
[gyul@localhost Logs]$ ls -al
total 4
drwxrwxr-x.  5 gyul gyul   58 Jan  3 17:44 .
drwxr-x---. 19 gyul gyul 4096 Jan  3 17:43 ..
drwxrwxr-x.  2 gyul gyul    6 Jan  3 17:44 gyul12_1
drwxrwxr-x.  2 gyul gyul    6 Jan  3 17:44 gyul12_2
drwxrwxr-x.  2 gyul gyul    6 Jan  3 17:44 gyul12_admin
[gyul@localhost Logs]$ vi gyul12_admin/gyul12_admin.out
[gyul@localhost Logs]$ vi gyul12_1/gyul12_1.out
[gyul@localhost Logs]$ vi gyul12_2/gyul12_2.out
[gyul@localhost Logs]$

📌boot.properties 생성

Script로 기동시키기 위해서는 boot.properties 파일도 생성해줘야 한다.

Domain_home/servers로 이동한 후 각 Managed Server 디렉토리 내에 security 디렉토리를 생성한다.

[gyul@localhost servers]$ pwd
/home/gyul/Study/WLS/wls12/domains/gyul12domain/servers
[gyul@localhost servers]$ ls -al
total 4
drwxr-x---.  6 gyul gyul   76 Jan  3 16:51 .
drwxr-x---. 19 gyul gyul 4096 Jan  3 17:43 ..
drwxr-x---.  3 gyul gyul   25 Jan  3 17:21 domain_bak
drwxr-x---.  6 gyul gyul   54 Jan  3 16:50 gyul12_1
drwxr-x---.  6 gyul gyul   54 Jan  3 17:08 gyul12_2
drwxr-x---.  7 gyul gyul   70 Jan  3 16:32 gyul12_admin
[gyul@localhost servers]$

security 디렉토리 내, boot.properties 파일 생성하여 username과 password를 입력한다.

[gyul@localhost servers]$ ls -al
total 4
drwxr-x---.  6 gyul gyul   76 Jan  3 16:51 .
drwxr-x---. 19 gyul gyul 4096 Jan  3 17:43 ..
drwxr-x---.  3 gyul gyul   25 Jan  3 17:21 domain_bak
drwxr-x---.  6 gyul gyul   54 Jan  3 16:50 gyul12_1
drwxr-x---.  6 gyul gyul   54 Jan  3 17:08 gyul12_2
drwxr-x---.  7 gyul gyul   70 Jan  3 16:32 gyul12_admin
[gyul@localhost servers]$ cd gyul12_1
[gyul@localhost gyul12_1]$ ls -al
total 0
drwxr-x---. 6 gyul gyul 54 Jan  3 16:50 .
drwxr-x---. 6 gyul gyul 76 Jan  3 16:51 ..
drwxr-x---. 3 gyul gyul 25 Jan  3 16:50 cache
drwxr-x---. 4 gyul gyul 31 Jan  3 16:50 data
drwxr-x---. 3 gyul gyul 69 Jan  3 16:50 logs
drwxr-x---. 4 gyul gyul 70 Jan  3 17:14 tmp
[gyul@localhost gyul12_1]$ mkdir security
[gyul@localhost gyul12_1]$ vi security/boot.properties
username=gyul12admin
password=gyul_0306

📌Script 기동

Script로 Server 기동 할 준비가 다 되었다면 Start Script를 실행시킨다.

[gyul@localhost script]$ ls -al
total 28
drwxrwxr-x.  2 gyul gyul  147 Jan  3 17:40 .
drwxr-x---. 19 gyul gyul 4096 Jan  3 17:43 ..
-rwx------.  1 gyul gyul  499 Jan  3 17:39 start_admin.sh
-rwx------.  1 gyul gyul  516 Jan  3 17:39 start_gyul12_1.sh
-rwx------.  1 gyul gyul  505 Jan  3 17:40 start_gyul12_2.sh
-rwx------.  1 gyul gyul  109 Jan  3 17:40 stop_admin.sh
-rwx------.  1 gyul gyul  218 Jan  3 17:40 stop_gyul12_1.sh
-rwx------.  1 gyul gyul  208 Jan  3 17:40 stop_gyul12_2.sh
[gyul@localhost script]$ ./start_admin.sh

RUNNING mode 인 것을 확인하고 Console에 접속한다.

<Jan 3, 2023 5:54:59,264 PM KST> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>
<Jan 3, 2023 5:54:59,268 PM KST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>

정상적으로 Console 화면을 볼 수 있다.

Managed Server는 Shutdown 상태이다.

Script로 Managed Server도 기동해본다.

(백그라운드 실행이므로 Admin Server 기동한 터미널에서 ctrl+c 로 빠져나와도 shutdown되지 않는다.)

정상적으로 기동 되는 것을 확인 할 수 있다.

📌Script 중지

이번엔 Script로 Managed Server를 Shutdown 시켜본다.

[gyul@localhost script]$ ps -ef|grep java
gyul     27121 27072  0 Jan03 ?        00:02:10 /usr/java/jdk1.8.0_291/bin/java -server -Dgyul12_admin -cp /home/gyul/Study/WLS/wls12/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=gyul12_admin -Djava.security.policy=/home/gyul/Study/WLS/wls12/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/home/gyul/Study/WLS/wls12/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/home/gyul/Study/WLS/wls12/wlserver/server -Dweblogic.home=/home/gyul/Study/WLS/wls12/wlserver/server weblogic.Server
gyul     29163 29114 99 11:27 pts/0    00:00:16 /usr/java/jdk1.8.0_291/bin/java -server -Dgyul12_1 -cp /home/gyul/Study/WLS/wls12/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=gyul12_1 -Djava.security.policy=/home/gyul/Study/WLS/wls12/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/home/gyul/Study/WLS/wls12/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/home/gyul/Study/WLS/wls12/wlserver/server -Dweblogic.home=/home/gyul/Study/WLS/wls12/wlserver/server -Dweblogic.management.server=t3://192.168.133.199:19900 weblogic.Server
gyul     29256 29207 93 11:27 pts/0    00:00:08 /usr/java/jdk1.8.0_291/bin/java -server -Dgyul12_2 -cp /home/gyul/Study/WLS/wls12/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=gyul12_2 -Djava.security.policy=/home/gyul/Study/WLS/wls12/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/home/gyul/Study/WLS/wls12/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/home/gyul/Study/WLS/wls12/wlserver/server -Dweblogic.home=/home/gyul/Study/WLS/wls12/wlserver/server -Dweblogic.management.server=t3://192.168.133.199:19900 weblogic.Server
gyul     29322 28819  0 11:28 pts/0    00:00:00 grep --color=auto java
[gyul@localhost script]$ ./stop_gyul12_1.sh #stop_gyul12_2.sh
[gyul@localhost script]$ ps -ef|grep java
gyul     27121 27072  0 Jan03 ?        00:02:10 /usr/java/jdk1.8.0_291/bin/java -server -Dgyul12_admin -cp /home/gyul/Study/WLS/wls12/wlserver/server/lib/weblogic-launcher.jar -Dlaunch.use.env.classpath=true -Dweblogic.Name=gyul12_admin -Djava.security.policy=/home/gyul/Study/WLS/wls12/wlserver/server/lib/weblogic.policy -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/home/gyul/Study/WLS/wls12/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/home/gyul/Study/WLS/wls12/wlserver/server -Dweblogic.home=/home/gyul/Study/WLS/wls12/wlserver/server weblogic.Server
gyul     29549 28819  0 11:29 pts/0    00:00:00 grep --color=auto java
[gyul@localhost script]$

Admin Server도 Shutdown 시켜본다.

[gyul@localhost script]$ ./stop_admin.sh
Stopping Weblogic Server...

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Connecting to t3://192.168.133.199:19900 with userid gyul12admin ...
Successfully connected to Admin Server "gyul12_admin" that belongs to domain "gyul12domain".

Warning: An insecure protocol was used to connect to the server.
To ensure on-the-wire security, the SSL port or Admin port should be used instead.

Shutting down the server gyul12_admin with force=false while connected to gyul12_admin ...
WLST lost connection to the WebLogic Server that you were connected to.
This may happen if the server was shut down or partitioned.
You will have to re-connect to the server once the server is available.
Disconnected from weblogic server: gyul12_admin
Disconnected from weblogic server:


Exiting WebLogic Scripting Tool.

Done
Stopping Derby Server...
Derby server stopped.
[gyul@localhost script]$ ps -ef|grep java
gyul     29655 28819  0 11:30 pts/0    00:00:00 grep --color=auto java
[gyul@localhost script]$

Console에 접속이 끊긴 것도 확인할 수 있다.

0개의 댓글