Linux下脚本做成服务

Posted 随笔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下脚本做成服务相关的知识,希望对你有一定的参考价值。

一.脚本做成服务

1.把启动脚本复制到 /etc/init.d目录中

2.脚本内容 xxxx代表jar包名称

#!/usr/bin/env bash
# chkconfig: 2345 20 80
#description: start and stop server
PRO_HOME=/usr/test/demo
JAVA_HOME=/usr/java/jdk1.8.0_92
SVR_NAME=test
case $1 in 
    start)
        echo "starting $PRO_HOME/$SVR_NAME ..."
        $JAVA_HOME/bin/java -Dfile.encoding=UTF-8 -jar $PRO_HOME/$SVR_NAME/xxxx.$SVR_NAME*.jar --spring.config.location=$PRO_HOME/$SVR_NAME/application.yml > $PRO_HOME/$SVR_NAME/logs.out&
        ;;
    stop)
        echo "stopping $PRO_HOME/$SVR_NAME ..."
        ps -ef|grep xxxx.$SVR_NAME* |grep -v grep |awk ‘{print $2}‘  | sed -e "s/^/kill -9 /g" | sh - 
        ;;
    restart)
        "$0" stop
        sleep 3
        "$0" start
        ;;
    status)
        ps -ef|grep xxxx.$SVR_NAME*
        ;;
    logs)
        tail -f $PRO_HOME/$SVR_NAME/logs.out
        ;;
    *)       
        echo "Example: server-$SVR_NAME [start|stop|restart|status|logs]" ;;
esac

3.添加服务

[[email protected] init.d]# chkconfig --add test

4.查看所有服务列表

[[email protected] localhost]# chkconfig

 

二.xxxx.jar包做成启动命令

#!/usr/bin/env bash
case $1 in 
    start)   
        java -Dfile.encoding=UTF-8 -jar xxxx.jar --spring.config.location=application.yml > logs.out & 
        ;;
    stop)    
        ps -ef|grep xxxx* |grep -v grep |awk ‘{print $2}‘  | sed -e "s/^/kill -9 /g" | sh - 
        ;;
    restart)
        "$0" stop
        sleep 3
        "$0" start
        ;;
    status)  ps -ef|grep xxxx*
        ;;
    *)       
        echo "Example: service.sh [start|stop|restart|status]" ;;
esac

 

 

以上是关于Linux下脚本做成服务的主要内容,如果未能解决你的问题,请参考以下文章

关于linux下crontab下脚本执行时,获取的值不正确

Linux下脚本实战之系统监控

windows下编写的bash脚本拖入linux环境下脚本出错之编码问题

Linux下脚本执行命令sh

linux下脚本实现从一个文件中读数,有文件多行 (每行都是:名称 + 多个空格 + 数据 ),

dos 下脚本编写须知