#java env #增加操作权限: chmod +x *.sh #编译.sh文件命令: sed -i 's/\r$//' *.sh #启动命令: ./sh.sh start 停止 ./sh.sh stop #shell脚本有时候调用linux的环境变量会有问题,所以这里还是把用到的java环境再设置一下 #export JAVA_HOME=/usr/bin/java #名称为文件夹名称,jar 文件的父级目录 #文件名 为了确保脚本通用,工程名的父级文件名 APP_NAME=file SERVICE_DIR=/usr/local/jar/$APP_NAME #工程名称 idea 打包出来的工程名称 SERVICE_NAME=file APP_JAR=$SERVICE_NAME\.jar #启动app的时候,将进程的pid保存在这里,方便以后杀死进程用 APP_PID=$SERVICE_NAME\.pid cd $SERVICE_DIR case "$1" in start) #/dev/null 就不会有nohup.out文件了。 nohup java -Xms32m -Xmx128m -Dloader.path="lib/" -jar $APP_JAR >log.file 2>&1 & #将pid写入文件 echo $! > $SERVICE_DIR/$APP_PID echo "===== start $SERVICE_NAME" ;; stop) kill `cat $APP_PID` #删除掉pid文件 rm -f $SERVICE_DIR/$APP_PID #查看是不是杀死进程了 sleep 5 #获得进程号,复制号两边不能留空格 pid=`ps -ef | grep -w $SERVICE_NAME | grep -v grep | awk '{print $2}'` #判断相等两边要留空格 if ["$pid" == ""];then echo "=== kill successfully " else echo "===== kill fail and try to kill -9" echo "==== the pid is $pid" kill -9 $pid fi echo "stop finished" ;; *) echo "please use start or stop 参数" ;; esac exit 0