系统环境 centOS
软件环境依赖, rpm-build rpmdevtools
yum install -y rpm-build rpmdevtools
进入当前用户目录
cd ~
创建文件夹
rpmdev-setuptree
会多一个rpmbuild 目录
进入rpmbuild目录
cd rpmbuild目录
结构如下
[l-chenye@hd01v rpmbuild]$ tree
.
├── BUILD
├── BUILDROOT
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
创建相关文件
[l-chenye@hd01v rpmbuild]$ tree
.
├── BUILD
├── BUILDROOT
├── RPMS
├── SOURCES
│ ├── huadian.jar
│ ├── start.sh
│ └── stop.sh
├── SPECS
│ └── huadian.spec
└── SRPMS
haudian.jar是springboot的启动jar
start.sh是启动脚本
stop.sh是停止脚本
huadian.spec是rpm脚本
打包rpm执行命令
rpmbuild -ba ./SPECS/huadian.spec
这样就会再RPMS目录下面创建一个rpm文件
[l-chenye@hd01v rpmbuild]$ tree
.
├── BUILD
├── BUILDROOT
│ └── huadian-1.0-release.x86_64
│ └── usr
│ └── huadian
│ └── SOURCES
│ ├── huadian.jar
│ ├── start.sh
│ └── stop.sh
├── RPMS
│ └── x86_64
│ └── huadian-1.0-release.x86_64.rpm
├── SOURCES
│ ├── huadian.jar
│ ├── start.sh
│ └── stop.sh
├── SPECS
│ └── huadian.spec
└── SRPMS
└── huadian-1.0-release.src.rpm
name: huadian
Version: 1.0
Release: release
Summary: test
Group: System Environment/Daemons
License: GPL
Vendor: MySelf.com
%description
huadian service
%pre
%preun
#卸载时进行的操作
%postun
rm -rf /usr/huadian
%clean
%install
rm -rf %{buildroot}
#mkdir -p %{buildroot}
mkdir -p %{buildroot}/usr/huadian
cp -rp %{_sourcedir}/ %{buildroot}/usr/huadian/
#install -m 755 %{_sourcedir}/huadian.jar %{buildroot}/usr/huadian/huadian.jar
#install -m 755 %{_sourcedir}/start.sh %{buildroot}/usr/huadian/start.sh
#install -m 755 %{_sourcedir}/stop.sh %{buildroot}/stop.sh
#install -m 755 %{_sourcedir}/huadian.service %{buildroot}/usr/huadian/huadian.service
%files
%defattr (-,l-chenye,l-chenye,0777)
#安装目录
/usr/huadian
#安装后进行的操作
%post
chmod 777 /usr/huadian/*.sh
/usr/huadian/bin/start.sh
#开机启动
/usr/huadian/start.sh
#systemctl enable huadian
start.sh
#!/bin/sh
#java -jar /opt/huadian/java/test.jar &
java -jar -Xms512m -Xmx512m -Dspring.profiles.active=dev --server.port=6002 /usr/huadian/huadian.jar &
echo $! > /opt/huadian/var/run/sgomp-replace_holder.pid
stop.sh
#/bin/sh
PID=$(cat /opt/huadian/var/run/huadian_holder.pid)
kill -9 $PID
rm -fr /opt/huadian/var/run/huadian_holder.pid
[Unit]
Description= haudian
After=network.target haudian.service
[Service]
Type=forking
Restart=always
RestartSec=5
User=infra
Group=infra
ExecStart=/usr/huadian/start.sh
ExecStartPost=/bin/sleep 10
ExecStop=/usr/haudian/stop.sh
PIDFile=/opt/haudian/var/run/haudian.pid
[Install]
WantedBy=multi-user.target
安装
rpm -iv huadian-1.0-release.x86_64.rpm
查看已经安装的软件
yum list installed
yum list installed | grep huadian