spring excutable jar 생성
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
nohup 으로 서비스를 돌리는 것과 daemon 을 이용하는 것의 차이점
https://stackoverflow.com/questions/958249/whats-the-difference-between-nohup-and-a-daemon
실행용 shell script 샘플
https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html
#!/bin/bash
#---------------------------------------------------------------------------------
this_name="$0"
while [ -h "$this_name" ] ; do
ls=`ls -ld "$this_name"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
this_name="$link"
else
this_name=`dirname "$this_name"`/"$link"
fi
done
dir_current=`dirname "$this_name"`
[ -z "$myapp_home" ] && myapp_home=`cd "$dir_current" > /dev/null; pwd`
#---------------------------------------------------------------------------------
export MODE=service
export APP_NAME="myapp-rest-v2"
export CONF_FOLDER=$myapp_home/conf
export PID_FOLDER=$myapp_home/pid
export LOG_FOLDER=$myapp_home/log
export LOG_FILENAME="$APP_NAME.log"
myapp_user="admin"
myapp_jar_path="$myapp_home/$APP_NAME-0.0.1.jar"
myapp_profile="DEV"
myapp_encoding="UTF-8"
myapp_port_http="8080"
myapp_port_jmx="18080"
myapp_ip_jmx="192.168.1.2"
#---------------------------------------------------------------------------------
JAVA_OPTS="$JAVA_OPTS -server ";
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=$myapp_encoding ";
JAVA_OPTS="$JAVA_OPTS -DSERVER_NAME=$APP_NAME ";
JAVA_OPTS="$JAVA_OPTS -DLOG_DIR=$LOG_FOLDER ";
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=$myapp_profile ";
JAVA_OPTS="$JAVA_OPTS -Dserver.port=$myapp_port_http ";
#---------------------------------------------------------------------------------
GC_OPTION=" -verbose:gc "
GC_OPTION="$GC_OPTION -server "
GC_OPTION="$GC_OPTION -Xloggc:$LOG_FOLDER/gc.log "
GC_OPTION="$GC_OPTION -XX:+UseParallelGC "
GC_OPTION="$GC_OPTION -XX:+PrintGCDetails "
GC_OPTION="$GC_OPTION -XX:+PrintGCTimeStamps "
GC_OPTION="$GC_OPTION -XX:+PrintHeapAtGC "
GC_OPTION="$GC_OPTION -XX:+HeapDumpOnOutOfMemoryError "
GC_OPTION="$GC_OPTION -XX:HeapDumpPath=$LOG_FOLDER/heap_dump.hprof "
#---------------------------------------------------------------------------------
#JMX_OPTION=" -Dcom.sun.management.jmxremote "
JMX_OPTION="$JMX_OPTION -Dcom.sun.management.jmxremote=true "
JMX_OPTION="$JMX_OPTION -Dcom.sun.management.jmxremote.port=$myapp_port_jmx "
JMX_OPTION="$JMX_OPTION -Dcom.sun.management.jmxremote.ssl=false "
JMX_OPTION="$JMX_OPTION -Dcom.sun.management.jmxremote.authenticate=false "
JMX_OPTION="$JMX_OPTION -Djava.rmi.server.hostname=$myapp_ip_jmx "
export JAVA_OPTS="$JAVA_OPTS $GC_OPTION $JMX_OPTION "
#---------------------------------------------------------------------------------
if [ ! -d "$CONF_FOLDER" ]; then
mkdir $CONF_FOLDER
fi
#---------------------------------------------------------------------------------
if [ ! -d "$PID_FOLDER" ]; then
mkdir $PID_FOLDER
fi
#---------------------------------------------------------------------------------
if [ ! -d "$LOG_FOLDER" ]; then
mkdir $LOG_FOLDER
fi
#---------------------------------------------------------------------------------
start(){
su $myapp_user -s /bin/bash -c "$myapp_jar_path start"
}
#---------------------------------------------------------------------------------
stop(){
su $myapp_user -s /bin/bash -c "$myapp_jar_path stop"
}
#---------------------------------------------------------------------------------
status(){
su $myapp_user -s /bin/bash -c "$myapp_jar_path status"
}
#---------------------------------------------------------------------------------
restart(){
su $myapp_user -s /bin/bash -c "$myapp_jar_path restart"
}
#---------------------------------------------------------------------------------
force_reload(){
su $myapp_user -s /bin/bash -c "$myapp_jar_path force_reload"
}
#---------------------------------------------------------------------------------
force_stop(){
su $myapp_user -s /bin/bash -c "$myapp_jar_path force_stop"
}
#---------------------------------------------------------------------------------
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
force-reload)
force_reload
;;
force-stop)
force_stop
;;
*)
echo "Usage: $0 [start|stop|status|restart|force-reload|force-stop]"; exit 1;
;;
esac
exit 0
'프로그램 > Java' 카테고리의 다른 글
Using the MariaDB JDBC driver with Amazon Aurora with MySQL compatibility (0) | 2021.05.14 |
---|---|
범위 지정 랜덤 & 가중치 랜덤 (0) | 2020.10.28 |
java 랜덤 범위 지정 (0) | 2014.10.24 |
spring cross-domain filter (0) | 2014.07.22 |
직렬화 (Serialize) (0) | 2014.02.21 |