springboot中的shell脚本怎么利用jar方式启动
这篇文章将为大家详细讲解有关spring boot中的shell脚本怎么利用jar方式启动,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

成都创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为崖州企业提供专业的成都网站建设、网站设计,崖州网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
用spring boot框架做的项目,将第三方包全部打在jar里面,通过shell脚本启动和停止服务,常用的shell脚本模板如下:
#!/bin/bash
JAVA_OPTIONS_INITIAL=-Xms128M
JAVA_OPTIONS_MAX=-Xmx512M
_JAR_KEYWORDS=monitor-alarm-task-1.0-SNAPSHOT.jar
APP_NAME=monitor-alarm-task
APPLICATION_FILE=/opt/scpip_monitor/application.properties
PID=$(ps aux | grep ${_JAR_KEYWORDS} | grep -v grep | awk '{print $2}' )
ALARM_CONFIG_FILE=`pwd`/alarmConfig.yaml
function check_if_process_is_running {
if [ "$PID" = "" ]; then
return 1
fi
ps -p $PID | grep "java"
return $?
}
case "$1" in
status)
if check_if_process_is_running
then
echo -e "\033[32m $APP_NAME is running \033[0m"
else
echo -e "\033[32m $APP_NAME not running \033[0m"
fi
;;
stop)
if ! check_if_process_is_running
then
echo -e "\033[32m $APP_NAME already stopped \033[0m"
exit 0
fi
kill -9 $PID
echo -e "\033[32m Waiting for process to stop \033[0m"
NOT_KILLED=1
for i in {1..20}; do
if check_if_process_is_running
then
echo -ne "\033[32m . \033[0m"
sleep 1
else
NOT_KILLED=0
fi
done
echo
if [ $NOT_KILLED = 1 ]
then
echo -e "\033[32m Cannot kill process \033[0m"
exit 1
fi
echo -e "\033[32m $APP_NAME already stopped \033[0m"
;;
start)
if [ "$PID" != "" ] && check_if_process_is_running
then
echo -e "\033[32m $APP_NAME already running \033[0m"
exit 1
fi
nohup java -jar -Dalarm.config.file=$ALARM_CONFIG_FILE $JAVA_OPTIONS_INITIAL $JAVA_OPTIONS_MAX $_JAR_KEYWORDS --spring.config.location=$APPLICATION_FILE > /dev/null 2>&1 &
echo -ne "\033[32m Starting \033[0m"
for i in {1..20}; do
echo -ne "\033[32m.\033[0m"
sleep 1
done
if check_if_process_is_running
then
echo -e "\033[32m $APP_NAME fail \033[0m"
else
echo -e "\033[32m $APP_NAME started \033[0m"
fi
;;
restart)
$0 stop
if [ $? = 1 ]
then
exit 1
fi
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0正真启动的命令:
复制代码 代码如下:
nohup java -jar -Dalarm.config.file=$ALARM_CONFIG_FILE $JAVA_OPTIONS_INITIAL $JAVA_OPTIONS_MAX $_JAR_KEYWORDS --spring.config.location=$APPLICATION_FILE > /dev/null 2>&1 &
其中-Dalarm.config.file 指定了外部配置文件的路径,在service初始化中通过这个路径读取外部配置文件,然后解析成对象,如下:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.yaml.snakeyaml.Yaml;
import scpip.monitor.task.obj.MetricObj;
@Service
public class AlarmConfigService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private Map metricMap;
public AlarmConfigService (){
metricMap = new HashMap();
init();
}
private void init(){
BufferedReader buffer;
try {
InputStream cpResource = new FileInputStream(getAlarmConfigFile());
buffer = new BufferedReader(new InputStreamReader(cpResource,"utf-8"));
Yaml yaml = new Yaml();
//Map>> object = (Map>>) yaml.load(getAlarmConfigFile());
Map>> object = (Map>>) yaml.load(buffer);
logger.info("object==" + object);
parseConfigMap(object);
} catch (Exception e) {
e.printStackTrace();
}
}
public Map getMetricMap() {
return metricMap;
}
//{metricName=当前响应时间, alarmValue=10,20,40, columnName=response_time},
private void parseConfigMap(Map>> object){
MetricObj obj = null;
for (String key : object.keySet()) {
List 关于spring boot中的shell脚本怎么利用jar方式启动就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
分享标题:springboot中的shell脚本怎么利用jar方式启动
标题链接:http://www.jxjierui.cn/article/ghpppg.html


咨询
建站咨询
