linux自动部署jar包,注册系统服务(基于Centos7)

简介: linux自动部署jar包,注册系统服务(基于Centos7)

最近一直在搞服务器,现在要运行我们的程序,都是jar包的格式,但是每次输入运行命令都很麻烦,现在进行放入脚本启动或者注册服务启动,来简化启动,但是这个方法也有一定的缺陷,需要一定的标准规范才可以正确运行,比如jar包的打包名称一定要和脚本中的名称一样

下面进入正题,首先来脚本启动

说一下前提,根据自己的需求修改相应的路径

1. jar包路径 /usr/local/docpc
2. jar包名称 doctor-pc-0.0.1-SNAPSHOT.jar
3. java路径 /usr/bin/java

新建启动脚本

脚本启动的日志会在jar包目录下生成

# vim start.sh

脚本内容如下

#启动命令所在目录
HOME='/usr/local/docpc'
start(){
  #进入命令所在目录
  cd $HOME
  nohup sudo /usr/bin/java -jar doctor-pc-0.0.1-SNAPSHOT.jar > doctor-pc-0.0.1-SNAPSHOT.jar.log 2>&1 &
}
stop(){
  #kill 掉本程序
  ps -ef | grep doctor-pc-0.0.1| grep -v grep |awk '{print $2}' | xargs sudo kill -9
}
case $1 in
  start)
   start
  ;;
  stop)
   stop
  ;;
  restart)
   $0 stop
   sleep 2
   $0 start
  ;;
  *)
   echo "Usage: {start|stop|restart}"
  ;;
esac
exit

启动

./start.sh start

关闭

./start.sh stop

重启

./start.sh restart

至此脚本启动完成,在jar包的同等级目录下会生成日志

下面来讲一下把jar包的启动注册到系统服务并添加到开机自启

jar包路径 /usr/local/docpc/
  1. 进入 /lib/systemd/system
# cd /lin/systemd/system
  1. 新建 docpc.service
# vim docpc.service
  1. docpc.service内容如下
[Unit]
Description=docpc
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /usr/local/docpc/doctor-pc-0.0.1-SNAPSHOT.jar
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop= ps -ef | grep doctor-pc-0.0.1| grep -v grep |awk '{print $2}' | xargs sudo kill -9
[Install]
WantedBy=multi-user.target
  1. 给docpc.service加文件权限
# chmod 777 docpc.service
  1. 启动服务
# systemctl start docpc.service
  1. 关闭
# systemctl stop docpc.service
  1. 重启
# systemctl restart docpc.service
  1. 加入开机自启
# systemctl enable docpc.service
  1. 关闭开机自启
# systemctl disable docpc.service

到此,jar包的系统服务设置完成,脚本启动和注册系统是两个不同的启动方式,各位可以把启动脚本放入开机自动也可实现脚本的开机启动,这里就不说了,大家可以去Google一下。

下面进行强烈推荐的一波操作

  1. 首先把上面编写的shell启动脚本移动到/etc/rc.d/init.d目录下,并命名startjar
# mv start.sh /etc/rc.d/init.d/startjar
  1. 打开启动脚本
# vim startjar
  1. 头部添加声明代码
#!/bin/sh
 #chkconfig: 2345 80 90
 #description:auto_run

完成的脚本代码如下

#!/usr/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
#启动命令所在目录
HOME='/usr/local/docpc'
start(){
  #进入命令所在目录
  cd $HOME
  nohup sudo /usr/bin/java -jar doctor-pc-0.0.1-SNAPSHOT.jar > doctor-pc-0.0.1-SNAPSHOT.jar.log 2>&1 &
}
stop(){
  #kill 掉本程序
  ps -ef | grep doctor-pc-0.0.1| grep -v grep |awk '{print $2}' | xargs sudo kill -9
}
case $1 in
  start)
   start
  ;;
  stop)
   stop
  ;;
  restart)
   $0 stop
   sleep 2
   $0 start
  ;;
  *)
   echo "Usage: {start|stop|restart}"
  ;;
esac
exit
  1. 服务添加
# chkconfig --add startjar

本步骤如果出现服务不支持chkconfig的解决方案就是第三步的操作

  1. 启动/关闭/重启/状态
# systemctl start startjar
# systemctl stop startjar
# systemctl restart startjar
# systemctl status startjar
  1. 脚本注册服务完成,本过程就是对上面两个过程的选择性整合,大家可根据实际情况选择使用最后附上删除服务
# chkconfig  --del startjar

有问题欢迎留言咨询

目录
相关文章
|
10月前
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
1080 0
|
23天前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
88 25
|
9月前
|
Ubuntu 网络协议 Linux
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
2928 2
|
10月前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
7月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
243 1
Linux系统之Centos7安装cockpit图形管理界面
|
7月前
|
存储 数据可视化 Java
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
如何在Linux系统下部署和运行Java项目jar包,包括传输文件到Linux、使用nohup命令运行jar包、查看端口状态、杀死进程和查看项目运行状态,以及如何解决“没有主清单属性”的错误。
1209 2
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
|
9月前
|
Linux C语言
成功解决 在Linux CentOS 7 中安装gcc
这篇文章介绍了如何在Linux CentOS 7系统中安装gcc (g++) 8工具集。由于CentOS 7默认的gcc版本是4.8,而这个版本与Qt 5.14、Qt 5.15或更高版本不兼容,可能会导致编译时出现系统头文件错误。文章中提到,即使在项目配置中添加了`CONFIG+=c++11`,如果仍然报错,那么很可能是gcc版本的问题。为了解决这个问题,文章提供了使用CentOS的Software Collections (scl)来安装更新版本的gcc的步骤。
成功解决 在Linux CentOS 7 中安装gcc
|
10月前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
846 2
[JarEditor]可直接修改jar包的IDEA插件
|
9月前
|
关系型数据库 MySQL Linux
Linux(CentOS7)搭建LAMP服务环境
本文介绍了在Linux (CentOS 7) 上搭建LAMP服务环境的详细步骤,包括安装Apache HTTPd、解决编译时依赖问题、配置Apache服务、安装PHP以及处理PHP与Apache集成时遇到的问题。同时,还涉及了防火墙设置和SELinux权限调整,确保Web服务能够正常运行。
176 2
|
8月前
|
消息中间件 Java Linux
linux 之centos7安装kafka;;;;;待补充,未完成
linux 之centos7安装kafka;;;;;待补充,未完成