• Linux中jar包实现自动重启、开机自启方案


    想要实现自动重启、开机自启方式有很多,这里使用一种简单优雅的方式。
    不需要写Shell脚本,再用cron定时任务去不断扫描进程。

    步骤1:准备你的Java Jar包

    确保你的Java应用已经被打包成Jar,并且放置在一个合适的目录中,例如/opt/your-app/your-app.jar。

    步骤2:创建systemd服务文件

    在/etc/systemd/system/目录下创建一个新的服务文件,例如your-app.service。

    [Unit]
    # 应用描述
    Description=java应用
    After=network.target
    [Service]
    # 工作目录
    WorkingDirectory=/opt/your-app/
    User=root
    # 运行jar包的指令
    ExecStart=/usr/local/jdk/jdk-17.0.10/bin/java -jar -Xmx1536m /opt/your-app/your-app.jar
    # 收到正常停止命令时不自动重启(systemctl stop 时不会自动重启)
    SuccessExitStatus=143
    # 在服务失败时自动重启
    Restart=on-failure
    # 重启前等待10秒
    RestartSec=10
    # 重启尝试间隔时间
    StartLimitInterval=10
    # 间隔时间内的最大重启尝试次数
    StartLimitBurst=3
    
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    确保你将上方文件放在 /etc/systemd/system/ ( systemd 服务文件的标准存放位置) 目录下后执行下方指令刷新

    sudo systemctl daemon-reload 
    
    • 1

    步骤3:启用服务

    启用服务,使其在开机时自动启动:

    sudo systemctl enable your-app.service
    
    • 1

    步骤4:启动服务

    至此就可以使用systemctl指令管理你的java应用了。

    # 启动
    sudo systemctl start your-app.service
    # 停止
    sudo systemctl stop your-app.service
    # 查看状态
    sudo systemctl status your-app.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    测试自动重启

    使用 ps -ef |grep you-app.jar 查询出进程号并手动kill,稍等片刻后systemd将会自动帮你将应用重启

  • 相关阅读:
    背包问题(01背包、完全背包、多重背包)
    PC端 Rockchip RKNN-Toolkit 连接 Rockchip NPU 设备
    java:springboot单元测试spring-boot-starter-test
    RabbitMQ消息中间件
    sleuth+zipkin持久化和gateway设置跨域
    高通导航器软件开发包使用指南(14)
    C和指针 第10章 结构和联合 10.6 联合
    ssh-keygen命令生成RSA、ed25519类型密钥对
    初识Java
    银河麒麟 linux V10 安装JDK
  • 原文地址:https://blog.csdn.net/weixin_44003789/article/details/136298183