第一步:修改catalina.sh文件
#vim编辑Tomcat bin/catalina.sh文件,增加如下一行:
# Copy CATALINA_BASE from CATALINA_HOME if not already set
[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid" #增加这一行
第二步:创建tomcat.service文件
[root@localhost bin]# vi /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat service
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/software/jdk1.8.0_191"
PIDFile=/usr/local/tomcat/bin/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
脚本介绍
Description
服务描述
After
如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动
Type=forking
后台运行
Environment=“JAVA_HOME=/home/app/jdk1.8.0_171”
java安装路径。因为服务启动时,是不会读取全局变量的(/etc/profile),因此全局变量中配置的属性是读取不到的需要注意。
PIDFile=/home/app/apache-tomcat-8.5.31/bin/tomcat.pid
此文件是在第一步时配置的,如果type是后台运行,建议将此属性加上。指定pid。
ExecStart=/home/app/apache-tomcat-8.5.31/bin/startup.sh
启动脚本
ExecReload=/home/app/apache-tomcat-8.5.31/bin/shutdown.sh
重启脚本
ExecStop=/bin/kill -s HUP $MAINPID
停止脚本
PrivateTmp=true
是否使用私有tmp目录
WantedBy=multi-user.target
运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
第三步:保存退出,重新加载systemd
systemctl daemon-reload
重新加载,使 systemd生效
第四步:验证脚本
#查看服务状态
systemctl status tomcat.service
#停止服务
systemctl stop tomcat.service
#启动服务
systemctl start tomcat.service
#重启服务
systemctl restart tomcat.service
第五步:配置开机自启
#开启开机自启
systemctl enable tomcat.service
#取消开机自启
systemctl disable tomcat.service