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

有问题欢迎留言咨询

目录
相关文章
|
4月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
370 146
|
5月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
468 11
|
9月前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
382 29
|
11月前
|
Linux 网络安全 数据安全/隐私保护
centos开启samba服务
通过以上步骤,您已成功在CentOS系统上安装、配置并启动了Samba服务,并且可以通过Windows或Linux客户端访问共享目录。Samba为跨平台文件共享提供了强大的支持,配置灵活且易于管理。无论是简单的家庭网络共享还是企业级文件服务器,Samba都能胜任。通过合理的配置和访问控制,您可以确保文件共享的安全性和便利性。
1041 74
|
10月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
1093 25
|
11月前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
1137 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
8月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
521 0
|
10月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
452 10
|
11月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
342 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
2181 2
[JarEditor]可直接修改jar包的IDEA插件

热门文章

最新文章