linux jar包注册服务,jar包注册到Linux服务

1.编写服务脚本

只需要设置前面几个变量,其余的无需改动。

BASE_DIR:程序所在目录

JAR_NAME:程序名称

START_COMMAND:启动命令

LOG_DIR:日志目录

#!/bin/bash

#chkconfig: 345 80 90

#description:message_server

BASE_DIR=/home/data/message_server

JAR_NAME=message_server

START_COMMAND="java -jar $BASE_DIR/$JAR_NAME.jar server "

PID_FILE=$BASE_DIR/$JAR_NAME.pid

LOG_DIR=$BASE_DIR/logs

start() {

PID=`$START_COMMAND > $LOG_DIR/init.log 2>$LOG_DIR/init.error.log & echo $!`

}

case "$1" in

start)

if [ -f $PID_FILE ]; then

PID=`cat $PID_FILE`

if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then

start

else

echo "Already running [$PID]"

exit 0

fi

else

start

fi

if [ -z $PID ]; then

echo "Failed starting"

exit 1

else

echo $PID > $PID_FILE

echo "Started [$PID]"

exit 0

fi

;;

status)

if [ -f $PID_FILE ]; then

PID=`cat $PID_FILE`

if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then

echo "Not running (process dead but PID file exists)"

exit 1

else

echo "Running [$PID]"

exit 0

fi

else

echo "Not running"

exit 0

fi

;;

stop)

if [ -f $PID_FILE ]; then

PID=`cat $PID_FILE`

if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then

echo "Not running (process dead but PID file exists)"

rm -f $PID_FILE

exit 1

else

PID=`cat $PID_FILE`

kill -term $PID

echo "Stopped [$PID]"

rm -f $PID_FILE

exit 0

fi

else

echo "Not running (PID not found)"

exit 0

fi

;;

restart)

$0 stop

$0 start

;;

*)

echo "Usage: $0 {status|start|stop|restart}"

exit 0

esac

2.存放脚本

将写好的脚本命名为想启动的名称,我这里命名为jar包名称message_server。放到init.d 目录下。查看文件有没有执行权限,如果没有赋予执行权限,简单的操作是执行chmod 777 /etc/init.d/[文件名] 来赋予执行权限。start|stop 这些命令参数,其实都是在上面的脚本中自定义的,可以随意写成其他的自定义字符串,那只是一个名字。

3.自动补全功能实现

如果想用类似service message_server start 这样的不需要具体路径也可以自动tab键补全命令的方式进行启动,执行一下

complete -W "$(ls /etc/init.d/)" service

4.开机自启动

chkconfig --add message_server

如果 提示服务不支持chkconfig 是因为在脚本中未添加如下设置

#chkconfig: 345 80 60

#description:message_server

上面脚本中 第一个参数 345 对应的是Linux的的runlevel,意思是在345runlevel下服务会被启动

7个运行级别分别是

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户状态(没有NFS)

运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

运行级别4:系统未使用,保留

运行级别5:X11控制台,登陆后进入图形GUI模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

第二个和第三个参数分别代表着启动优先级和关闭优先级 数字大优先级高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值