您的当前位置:首页正文

java程序在linux开机自启,自动重启;用systemctl实现java程序的管理

2024-11-07 来源:个人技术集锦


简介

        systemctl是用于服务的命令行工具,常用于 Linux 系统中。提供了对系统服务(包括启动、停止、重启、启用、禁用等)的控制,以及对系统单元(units)的操作。

        所以,我们可以用systemctl来控制java程序,做到启动、停止、重启、启用、禁用等;

使用systemctl管理java程序

        假设我们有个jar包叫hk-ir-video-monitoring.jar,那先创建个名字叫hk-ir-video-monitoring.service的文件,然后编辑文件内容:

# [Unit]区块包含与单元类型无关的通用信息
[Unit]
#描述
Description=这里可以写一些简单的描述
#服务启动前置
After=network.target

# [Service]区块包含服务启动信息
[Service]
#类型:主进程
Type=simple
#使用root权限
User=root
#环境变量,没有环境变量需求的可不写这一行
Environment=LD_LIBRARY_PATH=/usr/local/java/hk-ir-video-monitoring/library
#服务的工作目录
WorkingDirectory=/usr/local/java/my_project
#日志标准输出
StandardOutput=append:/usr/local/java/hk-ir-video-monitoring/log
#日志标准错误
StandardError=append:/usr/local/java/hk-ir-video-monitoring/log
#启动命令,这里需要绝对路径
ExecStart=/usr/local/java/jdk1.8.0_271/bin/java -jar /usr/local/java/hk_ir_video_monitoring/hk-ir-video-monitoring.jar
#关闭命令
ExecStop=/bin/kill -s QUIT $MAINPID
#重启间隔
RestartSec=30
#只要服务关闭就重启
Restart=always
#设置重启的时间间隔限制,0表示无限制
StartLimitInterval=0
#设置在时间间隔内允许的最大重启次数
StartLimitBurst=5

# [Install]区块包含单元的启用信息
[Install]
WantedBy=multi-user.target

然后再linux的命令行输入:systemctl daemon-reload 让systemctl重新加载

输入命令:systemctl enable hk-ir-video-monitoring 启用服务

以下为扩展命令:

输入命令:systemctl disable hk-ir-video-monitoring 可禁用服务

输入命令:systemctl start hk-ir-video-monitoring 可立即启动hk-ir-video-monitoring

输入命令:systemctl stop hk-ir-video-monitoring 可立即关闭hk-ir-video-monitoring

输入命令:systemctl status hk-ir-video-monitoring 可查询hk-ir-video-monitoring的状态

systemctl语法结构与常用命令

systemctl [command] [unit]

command:命令,enable-启用,disable-禁用,start-启动,stop-停止,restart-重启,status-状态

unit:系统单元的名称,可以是服务、套接字、设备等

Top