Linux系统使用service设置程序自启动

13 篇文章 0 订阅
10 篇文章 0 订阅

整体描述

在linux系统里,设置程序自启动是基本操作,我们可以自己写一个service文件,设置自己的程序自启动参数。这里用springboot的jar包程序做示例。

前期准备

1. 生成pid文件

程序启动和杀死依赖pid文件,之前写过一个生成pid文件的文章:链接:在Springboot框架生成pid文件,可以参考一下。

具体方法

目前需要的脚本有3个,其中两个是给系统添加service用的,分别为start.sh和shutdown.sh,还有一个是杀死当前执行java进程的,这个只需要杀死进程就行,不需要写启动的命令,启动是再系统service里完成的。

1. 脚本编写

1.1 start.sh脚本

ldconfig
source ~/.bashrc
nohup java -jar test.jar &

1.2 shutdown.sh脚本

ID=`ps -ef | grep "test.jar" | grep -v grep | awk '{print $2}'`
if  [ ! -n "$ID" ] ;then
    echo "no process running"
else
    kill -9 ${ID}
    echo "kill process ${ID}"
fi

1.3 restart.sh脚本

restart脚本只需要kill掉进程即可。

JAR_NAME="test.jar"
APP_NAME="test"
PIDFile=/var/run/${APP_NAME}.pid
ldconfig
source ~/.bashrc
if [ -f $PIDFile ] ;then
    PID=`cat $PIDFile`
else
    PID=`ps -ef | grep ${JAR_NAME} | grep -v grep | awk '{print $2}'`
fi

if  [ ! -n "$PID" ] ;then
    echo "no ${APP_NAME} process running"
else
    kill -9 ${PID}
    echo "kill ${APP_NAME} process ${PID}"
fi

for a in {1..100}
do
    PID=`ps -ef | grep ${JAR_NAME} | grep -v grep | awk '{print $2}'`
    if  [ ! -n "$PID" ] ;then
        echo "${JAR_NAME} has stopped."
        break
    else
        echo "${JAR_NAME} is stopping."
        sleep 2
    fi
done

export LANG=zh_CN.UTF-8

sleep 5

for a in {1..100}
do
    PID=`ps -ef | grep ${JAR_NAME} | grep -v grep | awk '{print $2}'`
    if  [ ! -n "$PID" ] ;then
        echo "${APP_NAME} is starting."
        sleep 2
    else
        echo "${APP_NAME} start successed, pid= ${PID}"
        break
    fi
done

2. 设置service

2.1 service文件

系统的service在/usr/lib/systemd/system目录下,新建一个test.service的文件:

[Unit]
Description=test
 
[Service]  
#Type=simple
PIDFile=/var/run/test.pid
ExecStart=/app/test/bin/startup.sh  
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=false
Restart=always
RestartSec=10

[Install]  
WantedBy=multi-user.target 

2.2 设置自启动

systemctl enable test

2.3 查看设置结果

systemctl status test

看到如下则表示启动成功:
查看设置结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值