linux-Centos7 实现jar包开机自启

12 篇文章 0 订阅

思路:使用shell脚本实现注册服务;
前提: 配置好jdk环境变量
一、编写shell脚本
在/etc/rc.d/init.d目录下创建autotest.sh脚本如下:

#保证该脚本能被chkconfig识别
#!/bin/sh
# chkconfig: 2345 85 15 
# description:auto_run

#程序名
RUN_NAME=“mpushclient-0.0.1-SNAPSHOT.jar"

#jar 位置
JAVA_OPTS=/home/mpushclient/mpushclient-0.0.1-SNAPSHOT.jar
LOG_OPTS=/home/mpushclient/log.log
 
#开始方法
start() {
        source /etc/profile; nohup java -jar $JAVA_OPTS >$LOG_OPTS 2>&1 &
        echo "$RUN_NAME started success."
}
 
#结束方法
stop() {
        echo "stopping $RUN_NAME ..."
        kill -9 `ps -ef|grep $JAVA_OPTS|grep -v grep|grep -v stop|awk '{print $2}'`
}
 
case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        *)
                echo "Userage: $0 {start|stop|restart}"
                exit 1
esac

注意:
1、 source /etc/profile; 刚开始没加上,以为配置了jdk环境变量就可以,事实也是,如果直接执行java -jar 命令,程序能够跑起来;但是在shell脚本中就不行了,加上此段代码,指定jdk,成功解决!
2、 nohup 命令使用 2>&1 & 结尾,不然也会报错;
3、新增文件时使用vim命令,不要在windows下创建文件后复制过去,因为换行符win与linux不同,避免报错;
4、下面写法也可以

#!/bin/sh
# chkconfig: 2345 85 15 
# description:auto_run

#程序名
RUN_NAME="jar-change-demo-9096"

#jar 位置
JAVA_OPTS=jar-change-demo-9096.jar
LOG_OPTS=/home/hospital-pre/jar-change-demo/service-9096/log.log

#开始方法
start() {
        pushd /home/hospital-pre/jar-change-demo/service-9096/
        source /etc/profile; java -Xms256m -Xmx512m -jar $JAVA_OPTS >$LOG_OPTS 2>&1 &
        echo "$RUN_NAME started success."
}

#结束方法
stop() {
        echo "stopping $RUN_NAME ..."
        kill -9 `ps -ef|grep $JAVA_OPTS|grep -v grep|grep -v stop|awk '{print $2}'`
}

case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        *)
                echo "Userage: $0 {start|stop|restart}"
                exit 1
esac



二、设置执行权限
将zhihudemo-0.0.1-SNAPSHOT.jar和zhihudemoService.sh加上执行权限:
chmod +x /etc/init.d/autotest.sh
chmod +x /home/mpushclient/mpushclient-0.0.1-SNAPSHOT.jar

三、添加到chkconfig
添加到chkconfig作为系统服务,并设置开机启动:

chkconfig --add zhihudemoService.sh   (添加为系统服务)
chkconfig zhihudemoService.sh on  (开机自启动)
service zhihudemoService.sh start(启动服务)

执行完成后重启,查看启动日志,可以看到该jar包程序已经作为守护进程在系统后台运行

借鉴原文: https://www.jianshu.com/p/215eea897e08

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值