最近由于经常在项目上线或者调试中启动服务,由于要设置环境变量这些,所以为了方便写了个启动脚本,希望能够帮助大家,也算是给自己做个小笔记:

example_project_start.sh:

# /bin/bash
# Author
# Date: 2019-04-15
# Usage: ./example_project.sh $1 [$ENV] Usage() {
echo "command format: \"$0\" start|restart|stop [debug]"
} if [ $# -lt 1 ]; then
Usage
exit 1
fi prj_path=`cd $(dirname $0)/../; pwd`
cd $prj_path LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$prj_path/lib export LD_LIBRARY_PATH ENV=$2
[[ -z $ENV ]] && ENV="test" binary="example_project"
basedir="/export/servers/example_project"
identification="/export/servers/example_project/target" jar_name="$basedir/target/example_project.jar"
cfg="$basedir/config" function GetProcNum () {
proc_num=`ps -ef|grep "${identification}"|grep "${basedir}"|grep -v " grep "|grep -v " vi "|grep -v " vim "|grep -v " tail "|wc -l`
} function Release() { nohup java -Dfile.encoding=utf-8 -Dcfg=$cfg -jar $jar_name $ENV 1>out 2>&1 & } function Stop () {
GetProcNum
if [ $proc_num == 0 ]; then
echo "${binary} stop successfully."
else
echo "${binary} is stopping ..."
`ps -ef|grep "${identification}"|grep "${basedir}"|grep -v " grep "|grep -v " vi "|grep -v " vim "|grep -v " tail " > $basedir/stop.tmp` while read line
do
proc_id=`echo $line|awk -F' ' '{print $2}'`
kill -15 ${proc_id}
sleep 5
done < $basedir/stop.tmp
while [ 1 -eq 1 ]; do
sleep 5
GetProcNum
if [ $proc_num == 0 ]; then
echo "${binary} stop successfully."
break
else
echo "${binary} stop stopping!"
fi
done
fi
} function Start() {
GetProcNum
if [ $proc_num == 0 ]; then
echo "${binary} is starting ..." Release $ENV sleep 2
GetProcNum if [ $proc_num == 0 ]; then
echo "${binary} start Failed!"
exit 1
else
echo "${binary} start OK!"
fi else
echo "${binary} is already running now."
fi
} if [ "$1" == 'start' ]; then
Start "$2"
elif [ "$1" == 'restart' ]; then
Stop
Start "$2"
elif [ "$1" == 'stop' ]; then
Stop
else
Usage
fi

转载请注明出处:https://www.cnblogs.com/fnlingnzb-learner/p/10713590.html

java后台服务器启动脚本的更多相关文章

  1. java中服务器启动时,执行定时任务

    package com.ripsoft.util; import java.util.Calendar; import java.util.Timer; import javax.servlet.Se ...

  2. 极光推送经验之谈-Java后台服务器实现极光推送的两种实现方式

    原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6439313.html Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请 ...

  3. java后台服务器实现极光推送

    一.添加极光推送所需要的jar包,项目使用的maven,所以只需要在pom文件里添加jar包依赖 <dependency> <groupId>cn.jpush.api</ ...

  4. java后台服务器向Nodejs客户端发送压缩包文件

    java代码: Map map=new HashMap(); try { //获取本地文件转换成字符换 File file = new File(apppath);//"D:/upload/ ...

  5. Java jar包启动脚本

    #!/bin/bash APP_HOME=/wdcloud/app/rps/rps-module-admin APP_JAR=rps-module-admin-*.jar APP_PIDS=$(ps ...

  6. 服务器启动脚本 /etc/rc.local

    #启动php-frm/home/www/php/sbin/php-fpm #启动搜索引擎/home/www/se/bin/xs-ctl.sh start #启动lighttpd/home/www/li ...

  7. idea + springboot 的java后台服务器通过小米推送

    public class XiaomiPush { // 1.小米推送(我只推送Android且只应用regId发起推送,所以下面只有推送Android的代码 private static final ...

  8. java spring-boot 服务器启动参数设置

    java -jar -Xms5866m -Xmx5866m -Xss256k -Xloggc:/home/work/spring-boot/logs/gc-%t.log -XX:+UseGCLogFi ...

  9. android支付宝app支付(原生态)-包括android前端与java后台

    本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...

随机推荐

  1. Python执行ImportError:No module named MySQLdb异常

  2. Codeforces 1071C Triple Flips 构造

    原文链接 https://www.cnblogs.com/zhouzhendong/p/CF1071C.html 题目传送门 - CF1071C 题意 给定一个长度为 n 的 01 数列,限定你在 $ ...

  3. BZOJ4556 [Tjoi2016&Heoi2016]字符串 SA ST表 二分答案 主席树

    原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ4556.html 题目传送门 - BZOJ4556 题意 给定一个长度为 $n$ 的字符串 $s$ . ...

  4. docker保存、载入、导出、导入

    保存和载入 拿到CONTAINER ID docker ps -a 通过容器id生成镜像dockerlinuxdemoweb:update docker commit b33633d12871 doc ...

  5. 041 Spring Boot中排除功能的处理

    这个问题,原本是没有注意,主要是理解的不够深刻. 1.先看我的配置文件 package com.springBoot.ioc.config; import com.springBoot.ioc.con ...

  6. yield与yield from

    yield 通过yield返回的是一个生成器,yield既可以产出值又可以生成值,yield可以用next()来启动生成器,同时可以用send向生成器传递值:在初次启动生成器时,需调用next()或s ...

  7. PAT (Basic Level) Practise - 成绩排名

    1004. 成绩排名 题目链接:https://www.patest.cn/contests/pat-b-practise/1004 读入n名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓 ...

  8. scrapy选择器归纳

    python 爬虫: srcrapy框架xpath和css选择器语法 Xpath基本语法 一.常用的路径表达式: 表达式 描述 实例 nodename 选取nodename节点的所有子节点 //div ...

  9. gevent实现基于epoll和协程的服务器

    1. 导gevent中的猴子补丁,来把原来python自带的socket变成基于epoll的socket(解除阻塞问题) 代码: # from gevent import monkey;monkey. ...

  10. logback中logger详解

    前言 logback实践笔记 ​ 上一篇主要对root进行了实践总结,现在基于上一篇中的springboot代码环境对logback.xml中的logger来进行实践和自己遇到的坑. logger简介 ...