linux 自动重启jar包脚本

在Linux上,你可以使用systemd来创建一个自动重启jar包的脚本。

首先,创建一个脚本文件,例如restart_script.sh,并在文件中添加以下代码:

#!/bin/bash

SERVICE_NAME="my-jar-file.jar"  # 替换成你的jar包文件名
PATH_TO_JAR="/path/to/jar"  # 替换成你的jar包所在的路径
PID_PATH="/var/run/my-jar-file.pid"  # 替换成你的pid文件路径

case "$1" in
    start)
        echo "Starting $SERVICE_NAME ..."
        if [ ! -f $PID_PATH ]; then
            nohup java -jar $PATH_TO_JAR/$SERVICE_NAME >> /dev/null 2>&1&
            echo $! > $PID_PATH
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is already running ..."
        fi
    ;;
    stop)
        if [ -f $PID_PATH ]; then
            PID=$(cat $PID_PATH);
            echo "$SERVICE_NAME stopping ..."
            kill $PID;
            echo "$SERVICE_NAME stopped ..."
            rm $PID_PATH
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
    restart)
        if [ -f $PID_PATH ]; then
            PID=$(cat $PID_PATH);
            echo "$SERVICE_NAME stopping ..."
            kill $PID;
            echo "$SERVICE_NAME stopped ..."
            rm $PID_PATH

            echo "$SERVICE_NAME starting ..."
            nohup java -jar $PATH_TO_JAR/$SERVICE_NAME >> /dev/null 2>&1&
            echo $! > $PID_PATH
            echo "$SERVICE_NAME started ..."
        else
            echo "$SERVICE_NAME is not running ..."
        fi
    ;;
esac

将上述脚本中的my-jar-file.jar替换为你的jar包文件名,将/path/to/jar替换为你的jar包所在的路径,将/var/run/my-jar-file.pid替换为你的pid文件路径。

接下来,将脚本文件设置为可执行:

chmod +x restart_script.sh

然后,创建一个systemd服务文件,例如restart_script.service,并在文件中添加以下内容:

[Unit]
Description=Restart Script

[Service]
ExecStart=/path/to/restart_script.sh start
ExecStop=/path/to/restart_script.sh stop
ExecReload=/path/to/restart_script.sh restart
User=root
Group=root
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

将上述文件中的/path/to/restart_script.sh替换为脚本文件的路径。

将该服务文件复制到/etc/systemd/system/目录下:

sudo cp restart_script.service /etc/systemd/system/

然后,启动服务并设置开机自启动:

sudo systemctl start restart_script
sudo systemctl enable restart_script

这样,当系统启动时,jar包将会自动启动,并且在发生异常退出时会自动重新启动。你也可以使用以下命令手动启动、停止和重启服务:

sudo systemctl start restart_script
sudo systemctl stop restart_script
sudo systemctl restart restart_script

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值