1.制作rpm包
yum install rpm-build -y
2.創建工作目錄
mkdir -pv ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
3.准備要打包的文件
tomcat請自行下載
下載后修改配置文件,關閉ajp 8009監聽
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
修改catalina參數
CATALINA_HOME=/usr/local/tomcat JAVA_HOME=/usr/local/jdk CATALINA_PID=/usr/local/tomcat/var/tomcat.pid JAVA_OPTS="${JAVA_OPTS} -Duser.timezone=Asia/Shanghai -Dfile.encoding=utf-8 -server -XX:PermSize=512m -XX:MaxPermSize=512m -Xms4096m -Xmx4096m -Djava.awt.headless=true"
配置tomcat日志自動切割
修改catalina.sh,搜索關鍵詞 touch "$CATALINA_OUT"
org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_OUT" 2>&1 "&"
修改為
org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \ | /usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> /dev/null &
下載cronlog
yum install -y cronlog
tomcat啟動腳本
本次試驗為centos7.3,顧准備systemd所需的單元文件
[Unit] Description=Tomcat After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/tomcat/var/tomcat.pid ExecStart=/usr/local/tomcat-8.5.29/bin/startup.sh &>/dev/null ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
4.編寫tomcat.spec文件
%define path_name usr/local %define name_ tomcat-8.5.29 Name: tomcat Version: 8.5.29 Release: 1%{?dist} Summary: tomcat Group: tomcat License: GPL URL: http://www.test.net Packager: tomcat Vendor: tomcat Source0: tomcat-8.5.29.tar.gz Source1: tomcat.service BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot %description tomcat %prep mkdir -pv %{buildroot}/%{path_name} %setup -q %install mkdir -pv $RPM_BUILD_ROOT/%{path_name}/%{name_}/var cp -rf * $RPM_BUILD_ROOT/%{path_name}/%{name_}/ %{__install} -p -D %{SOURCE1} %{buildroot}/usr/lib/systemd/system/tomcat.service %post ln -s $RPM_BUILD_ROOT/%{path_name}/%{name_}/ $RPM_BUILD_ROOT/%{path_name}/tomcat %postun rm -fr /%{path_name}/%{name_} rm -fr /%{path_name}/tomcat %files %defattr(-,root,root,-) %attr(0755,root,root) /usr/local/ %attr(0755,root,root) /usr/lib/systemd/system/tomcat.service %attr(0755,root,root) /usr/local/tomcat-8.5.29/var %changelog * Sat Oct 24 2015 yeho 1.15-1 - Initial version
5.制作rpm包
將tomcat.service與tomcat包放置rpmbuild/SOURESC中
將tomcat.spec放置在rpmbuild/SPECS中
rpmbuild -bb rpmbuild/SPECS/tomcat.spec # 制作二進制包
沒解決事項:tomcat.pid嘗試在tomcat目錄外生成,但是在使用systemd啟動時不能創建此文件,最后導致不能啟動,最終在tomcat目錄內生成pid文件
查看tomcat安裝狀態
參考資料:https://www.cnblogs.com/seaspring/articles/5282516.html