Centos Jar 包部署自启动

还没有做的是定时对应用检测,判断是否运行。

1、准备工作(以api.jar为示例运行)

# 创建部署文件夹
cd /usr/local/soft/
mkdir apps

# 复制jar包到文件夹 winscp 复制吧

2、编辑启动脚本

# 1.创建启动脚本,这个位置具体看要求
vi /usr/local/soft/apps/api-start.sh


# 以下是内容

#!/bin/sh
export JAVA_HOME=/usr/bin/java#对应的 jdk 位置  可以使用 which java 查看具体位置
export PATH=$JAVA_HOME/bin:$PATH
nohup java -jar -Xms256m -Xmx4096m /usr/local/soft/apps/api.jar  &echo $! > /usr/local/soft/apps/api.pid   
#将上一次启动的pid 写入到指定文件


# 修改它的权限
chmod 750 api-start.sh

3、创建结束脚本

vi /usr/local/soft/apps/api-stop.sh

# 以下是内容

#!/bin/sh
PID=$(cat /usr/local/soft/apps/api.pid)kill -9 $PID


# 修改它的权限
chmod 750 api-stop.sh

4、注册服务

vi /lib/systemd/system/api.service

# 输入以下内容

Description=api-service
After=network.target  
 [Service]
Type=forking
ExecStart=/usr/local/soft/apps/api-start.sh #启动服务脚本的绝对路径
ExecStop=/usr/local/soft/apps/api-stop.sh #停止服务脚本的绝对路径.
PrivateTmp=true
[Install]
WantedBy=multi-user.target

5、服务管理相关

# 开机自启动
systemctl enable api.service 


systemctl start api.service #启动 api 服务
systemctl stop api.service  #停止 api 服务
systemctl status api.service  #查看 api 服务当前的运行状态

systemctl enable api.service  #开机启动 api 服务
systemctl disable api.service  #取消开机启动 api 服务
systemctl list-unit-files;   #查看当前服务(是否开机启动等)状态

6、开启服务器端口

firewall-cmd --zone=public --add-port=5443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --zone=public --list-ports