Centos 7将java jar包自定义开机启动服务以service xxx start|stop|restart|status 执行

如果不配置以服务方式启动java项目的话每次启动服务器都需要到jar包目录手动
java -jar 运行jar包,非常之不方便
所以我们将jar包自定义为启动服务

  1. 首先创建jar包的启动脚本 xxx-start.sh
#!/bin/sh
JAVA_HOME=/usr/local/java/jdk1.8.0_73/bin
#JAVA_OPTS="-Duser.timezone=GMT+8 -server -Xms2048m -Xmx2048m"
APP_LOG=/var/log/messages
APP_HOME=/sensee/senseeschool
APP_MAIN=ruoyi-admin.jar
CLASSPATH=$APP_HOME/classes

#for tradePortalJar in "$APP_HOME"/lib/*.jar;
#do
#   CLASSPATH="$CLASSPATH":"$tradePortalJar"
#done
 
tradePortalPID=0
 
getTradeProtalPID(){
    javaps=`jps -l | grep $APP_MAIN`
    if [ -n "$javaps" ]; then
        tradePortalPID=`echo $javaps | awk '{print $1}'`
    else
        tradePortalPID=0
    fi
}
 
startup(){
    getTradeProtalPID
    echo "================================================================================================================"
    if [ $tradePortalPID -ne 0 ]; then
        echo "$APP_MAIN already started(PID=$tradePortalPID)"
        echo "============================================================================================================"
    else
        echo -n "Starting $APP_MAIN"
        java -jar $APP_MAIN &
        getTradeProtalPID
        if [ $tradePortalPID -ne 0 ]; then
            echo "(PID=$tradePortalPID)...[Success]"
            echo "========================================================================================================="
        else
            echo "[Failed]"
            echo "========================================================================================================="
        fi
    fi
}

source /etc/profile
startup

  1. 然后创建停止脚本 xxx-stop.sh
#!/bin/sh
JAVA_HOME=/usr/local/java/jdk1.8.0_73/bin
APP_MAIN=ruoyi-admin.jar
 
tradePortalPID=0
 
getTradeProtalPID(){
    javaps=`jps -l | grep $APP_MAIN`
    if [ -n "$javaps" ]; then
        tradePortalPID=`echo $javaps | awk '{print $1}'`
    else
        tradePortalPID=0
    fi
}
 
shutdown(){
    getTradeProtalPID
    echo "================================================================================================================"
    if [ $tradePortalPID -ne 0 ]; then
        echo -n "Stopping $APP_MAIN(PID=$tradePortalPID)..."
        kill -9 $tradePortalPID
        if [ $? -eq 0 ]; then
            echo "[Success]"
            echo "================================================================================================================"
        else
            echo "[Failed]"
            echo "================================================================================================================"
        fi
        getTradeProtalPID
        if [ $tradePortalPID -ne 0 ]; then
            echo "[Failed]"
            echo "================================================================================================================"
        fi
    else
        echo "$APP_MAIN is not running"
        echo "================================================================================================================"
    fi
}

source /etc/profile 
shutdown

  1. 写好脚本之后,需要为脚本添加可执行权限

chmod +x xxx.sh

  1. 在/etc/systemd/system/目录下创建service服务 xxx.service
[Unit]
Description=ruoyi senseeschool service
After=network.target

[Service]
Type=forking
WorkingDirectory=/sensee/senseeschool
ExecStart=/sensee/senseeschool/ruoyi-server-start.sh
ExecStop=/sensee/senseeschool/ruoyi-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

	目录一定要对应清楚
  1. 最后给服务添加权限chmod +x hello-service.service

添加开机启动服务
systemctl enable xxx.service #添加开机启动服务

systemctl start xxx.service # 启动服务

systemctl stop xxx.service #关闭服务

systemctl restart xxx.service # 重启服务

systemctl status xxx.service #查看服务状态

systemctl disable xxx.service #取消开机启动

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
linux系统命令start-stop-daemon的源码及二进制,其中也提供了一个服务启动脚本模板。 此程序能帮助你实现将命令行程序变成服务运行,比如将"java -jar xxx.jar" 放在后台执行。 ./start-stop-daemon --help start-stop-daemon 1.9.18 for Debian - small and fast C version written by Marek Michalkiewicz , public domain. Usage: start-stop-daemon -S|--start options ... -- arguments ... start-stop-daemon -K|--stop options ... start-stop-daemon -H|--help start-stop-daemon -V|--version Options (at least one of --exec|--pidfile|--user is required): -x|--exec program to start/check if it is running -p|--pidfile pid file to check -c|--chuid change to this user/group before starting process -w|--chdir change the work directory to 'dir' -u|--user | stop processes owned by this user -n|--name stop processes with this name -s|--signal signal to send (default TERM) -a|--startas program to start (default is ) -N|--nicelevel add incr to the process's nice level -b|--background force the process to detach -m|--make-pidfile create the pidfile before starting -R|--retry check whether processes die, and retry -t|--test test mode, don't do anything -o|--oknodo exit status 0 (not 1) if nothing done -q|--quiet be more quiet -v|--verbose be more verbose Retry is |//... where is one of -|[-] send that signal wait that many seconds forever repeat remainder forever or may be just , meaning //KILL/ Exit status: 0 = done 1 = nothing done (=> 0 if --oknodo) 3 = trouble 2 = with --retry, processes wouldn't die

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值