Linux下启动Java程序的启动脚本编写

当开发完一个Java程序后,大多数会部署到Linux上,此时就需要编写脚本来启动Java程序,在网上找寻之后,本人自己编写了一个启动脚本,亲测可用!在此提供启动脚本,对于停止、重启、查询程序进程的脚本,只需对启动脚本稍加修改即可。

#此脚本是在Windows下编辑,若要在Linux上运行,要重新编辑
#否则会出错
#!bin/sh
#设置JAVA_HOME所在路径
JAVA_HOME =/user/java/jdk1.8.0_111

#设置JAVA项目路径
APP_HOME=bcms/dsq/xxxxx

#设置Java项启动主类
APP_MAINCLASS=org.springframework.boot.loader.JarLauncher

#跳转到app的目录
cd $APP_HOME

#读取db文件的,程序中用到的JDBC所需读取的db文件地址
DSQ_CONSOLE_DB=$APP_HOME/database-config.properties
export DSQ_CONSOLE_DB

#拼接 CLASSPATH
#CLASSPATH=.:$(JAVA_HOME)/jre/lib/rt.jar:$(APP_HOME)/com
#for i in $(APP_HOME)/lib/*.jar;do
#CLASSPATH=$(CLASSPATH) : $i
#done

#echo "CLASSPATH :   "$(CLASSPATH)

#初始化全局变量 psid
psid=0

#检查程序是否存在,并查处pid进程号
checkpid(){
   #此处需要 加英文状态下的 ` 符号 ,不是 单引号
   javaps= `ps -ef| grep JarLauncher | grep -v grep`
   
   if [ -n  "$(javaps)" ];then
psid=`ps-ef | grep JarLauncher | grep -v grep | awk '{print $2}'`
   else
psid=0
fi
echo "pid is :"$psid
}

###################################
#(函数)启动程序
#
#说明:
#1. 首先调用checkpid函数,刷新$psid全局变量
#2. 如果程序已经启动($psid不等于0),则提示程序已启动
#3. 如果程序没有被启动,则执行启动命令行
#4. 启动命令执行后,再次调用checkpid函数
#5. 如果步骤4的结果能够确认程序的pid,则打印[OK],否则打印[Failed]
#注意:echo -n 表示打印字符后,不换行
#注意: "nohup 某命令 >/dev/null 2>&1 &" 的用法
###################################
echo "ready  to  start !!!"

checkpid

if [ $psid != "0" ]; then
echo "======================="
echo "warn: $APP_MAINCLASS already started!!!(pid = $psid)"
echo "========================"
else
echo  "Starting $APP_MAINCLASS ......"

nohup  $(JAVA_HOME)/bin/java $(APP_MAINCLASS) > $(APP_HOME)/bin/nohup].out 2>&1 &

echo  "recheck !!!!"
checkpid
if [ $psid != "0" ];then 
echo "启动成功!!!(pid is $psid)"
else
echo  "启动失败!!!"
fi
fi

你可能感兴趣的:(linux)