JBoss 시작/종료 스크립트
WEB/JBossAS / 2010. 5. 23. 02:37
기본 환경의 시작 스크립트
#!/bin/sh
############################################
## On default, to launch JBoss
############################################
nohup ./run.sh -b 192.168.0.11 > /dev/null &
############################################
## On default, to launch JBoss
############################################
nohup ./run.sh -b 192.168.0.11 > /dev/null &
기본 환경의 종료 스크립트
#!/bin/sh
############################################
## On default, to kill JBoss
############################################
ps -ef | grep "/usr/local/jboss5/bin/run.jar" | grep -v grep | awk '{ printf("ProcessID %s Terminated.\n", $2); }'
ps -ef | grep "/usr/local/jboss5/bin/run.jar" | grep -v grep | awk '{ printf("kill -9 %s\n", $2); }' > tmp.$$
sh tmp.$$
rm -f tmp.$$
############################################
## On default, to kill JBoss
############################################
ps -ef | grep "/usr/local/jboss5/bin/run.jar" | grep -v grep | awk '{ printf("ProcessID %s Terminated.\n", $2); }'
ps -ef | grep "/usr/local/jboss5/bin/run.jar" | grep -v grep | awk '{ printf("kill -9 %s\n", $2); }' > tmp.$$
sh tmp.$$
rm -f tmp.$$
클러스터링 환경의 시작 스크립트
#!/bin/sh
############################################
## On node1, to launch JBoss
############################################
nohup ./run.sh -c node1 -g vickiPartition -u 239.255.100.100 -b 192.168.0.11 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-default -Djboss.server.log.dir=/home/vicki/logs/node1 > /dev/null &
############################################
## On node1, to launch JBoss
############################################
nohup ./run.sh -c node1 -g vickiPartition -u 239.255.100.100 -b 192.168.0.11 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-default -Djboss.server.log.dir=/home/vicki/logs/node1 > /dev/null &
클러스터링 환경의 종료 스크립트
#!/bin/sh
############################################
## On node1, to kill JBoss
############################################
ps -ef | grep "ServerPeerID=1" | grep -v grep | awk '{ printf("ProcessID %s Terminated.\n", $2); }'
ps -ef | grep "ServerPeerID=1" | grep -v grep | awk '{ printf("kill -9 %s\n", $2); }' > tmp.$$
sh tmp.$$
rm -f tmp.$$
############################################
## On node1, to kill JBoss
############################################
ps -ef | grep "ServerPeerID=1" | grep -v grep | awk '{ printf("ProcessID %s Terminated.\n", $2); }'
ps -ef | grep "ServerPeerID=1" | grep -v grep | awk '{ printf("kill -9 %s\n", $2); }' > tmp.$$
sh tmp.$$
rm -f tmp.$$
클러스터링 환경에서는 프로세스가 두 개가 뜨기 때문에 종료 스크립트가 있는 것이 편리합니다. 그렇지 않고 JBoss 에서 제공되는 종료 스크립트를 이용할 경우 바로 프로세스가 떨어지지 않아 사용자의 요청이 종료 중이 프로세스로 갈 수도 있습니다. 바로 프로세스를 죽이는 것이 운영 중에는 좋습니다.
클러스터링 환경에서 시작 스크립트 테스트
[root@localhost bin]# ./run.node1.sh
[root@localhost bin]# ps -ef | grep jboss
root 3123 1 0 11:32 pts/0 00:00:00 /bin/sh ./run.sh -c node1 -g vickiPartition -u 239.255.100.100 -b 192.168.0.11 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-default -Djboss.server.log.dir=/home/vicki/logs/node1
root 3146 3123 60 11:32 pts/0 00:00:01 java -Dprogram.name=run.sh -server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/usr/local/jboss5/lib/endorsed -classpath /usr/local/jboss5/bin/run.jar org.jboss.Main -c node1 -g vickiPartition -u 239.255.100.100 -b 192.168.0.11 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-default -Djboss.server.log.dir=/home/vicki/logs/node1
root 3158 3086 0 11:32 pts/0 00:00:00 grep jboss
실제로 프로세스를 실행 시키면 위와 같이 jboss 와 관련된 프로세스 2개를 확인할 수 있습니다. 한 서버에 두 개의 인스턴스가 있을 경우 구분할 수 있는 것은 ServerPeerID 이기 때문에 실행 스크립트에서 "ServerPeerID=1" 를 사용하였습니다.[root@localhost bin]# ps -ef | grep jboss
root 3123 1 0 11:32 pts/0 00:00:00 /bin/sh ./run.sh -c node1 -g vickiPartition -u 239.255.100.100 -b 192.168.0.11 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-default -Djboss.server.log.dir=/home/vicki/logs/node1
root 3146 3123 60 11:32 pts/0 00:00:01 java -Dprogram.name=run.sh -server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/usr/local/jboss5/lib/endorsed -classpath /usr/local/jboss5/bin/run.jar org.jboss.Main -c node1 -g vickiPartition -u 239.255.100.100 -b 192.168.0.11 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-default -Djboss.server.log.dir=/home/vicki/logs/node1
root 3158 3086 0 11:32 pts/0 00:00:00 grep jboss
클러스터링 환경에서 종료 스크립트 테스트
[root@localhost bin]# ./stop.node3.sh
ProcessID 3123 Terminated.
ProcessID 3146 Terminated.
ProcessID 3123 Terminated.
ProcessID 3146 Terminated.