CentOS 通用脚本处理jar包程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 通用脚本处理jar包程序相关的知识,希望对你有一定的参考价值。

参考技术A 不同应用只需要修改AppName参数内容即可实现jar包的启动,停止,重启

启动:./newapp.sh start

停止:./newapp.sh stop

重启:./newapp.sh restart

shell脚本newapp.sh管理jar包内容如下(不同应用只需要修改AppName参数内容和APP_HOME参数路径,以及相应的日志文件的路径):

#!/bin/sh

# ./ry.sh start 启动 stop 停止 restart 重启 status 状态

AppName=ruoyi-admin.jar

# JVM参数

JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"

APP_HOME=`pwd`

LOG_PATH=$APP_HOME/logs/$AppName.log

if [ "$1" = "" ];

then

echo -e "33[0;31m 未输入操作名 33[0m 33[0;34m start|stop|restart|status 33[0m"

exit 1

fi

if [ "$AppName" = "" ];

then

echo -e "33[0;31m 未输入应用名 33[0m"

exit 1

fi

function start



PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk 'print $2'`

if [ x"$PID" != x"" ]; then

echo "$AppName is running..."

else

nohup java $JVM_OPTS -jar $AppName > /data/ruoyi/nohup 2>&1 &

echo "Start $AppName success..."

fi



function stop



echo "Stop $AppName"

PID=""

query

PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk 'print $2'`



query

if [ x"$PID" != x"" ]; then

kill -TERM $PID

echo "$AppName (pid:$PID) exiting..."

while [ x"$PID" != x"" ]

do

sleep 1

query

else

echo "$AppName already stopped."

fi



function restart



stop

sleep 2

start



function status



PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`

if [ $PID != 0 ];then

echo "$AppName is running..."

else

echo "$AppName is not running..."

fi



case $1 in

start)

start;;

stop)

stop;;

restart)

restart;;

status)

status;;

*)

esac

Centos7 自己写了一个java程序的jar包,需要写一个脚本,然后设置成开机自启动,应该怎么做?

因为程序需要连接数据库,数据库是自启动的,所以必须在mysql后启动
sh脚本后台运行jar包

首先: centos 7默认 /etc/rc.local是没有执行权限的,所以:
第一步: chmod+x /etc/rc.local
第二步:把你要开机启动的脚本加到这个文件最后。保存就可以了
没错,就这么简单,哈哈,好运
参考技术A

一、chkconfig方式:

示例脚本名:autoStart.sh

1、脚本放到/etc/rc.d/init.d下面

2、给予执行权限 chmod +x autoStart.sh

3、添加自启chkconfig --add autoStart.sh

4、设置自启chkconfig autoStart.sh on

二、systemctl方式(contos7推荐):

示例脚本名:autoStart.sh,示例服务名:autoStart.service

1、编写脚本文件:vim autoStart.sh

#!/bin/bash
#chkconfig:2345 10 90
#description:sh test
#需求的java环境引入
export JDK_HOME=/application/jdk
export JAVA_HOME=/application/jdk
#下面是开机启动实际需要做的功能,示例为启动rocketmq的namesrv
sh /application/rocketmq-all-4.1.0/bin/mqnamesrv &

2、编写service文件:vim autoStart.service,ExecStart指定好运行脚本的路径

[Unit]  
Description=rqnamesrv
After=network.target
[Service]  
Type=forking
ExecStart=/autoStart.sh
ExecReload=  
ExecStop=
PrivateTmp=true  
[Install]  
WantedBy=multi-user.target

3、给脚本授予执行权限:chmod +x autoStart.sh

4、用mv命令将service文件放到/usr/lib/systemd/system目录下并赋予执行权限:chmod +x autoStart.service

5、到/usr/lib/systemd/system路径下执行命令systemctl enable autoStart.service;

6、使用 systemctl is-enabled autoStart.service查看服务是否是自启,如果现实enabled则已添加为自启

7、重启shutdown -r now,重启之后使用命令systemctl status autoStart.service 查看服务启动情况,如果现实active(running)则表示自启成功,服务正在运行

以上是关于CentOS 通用脚本处理jar包程序的主要内容,如果未能解决你的问题,请参考以下文章

Pentaho 通用错误处理脚本

linux下通用的java程序启动脚本

不错的linux下通用的java程序启动脚本(转载)

shell通用脚本启动

Centos7 自己写了一个java程序的jar包,需要写一个脚本,然后设置成开机自启动,应该怎么做?

Linux系统初装资源限制和内核参数优化脚本(CentOS和Ubuntu通用)