目录
3.新建tomcat.service文件【非常重要:前提是完成第一步】
3.1若是第一步没有完成直接进入第二步后,启动服务会出现一个错误
1.找到JDK位置(后面的配置需用到)
对于已经安装JDK,我们需要找出JDK的具体位置,可以参考以下命令
[root@VM-0-17-centos bin]# which java
/usr/bin/java
[root@VM-0-17-centos bin]# whereis java
java: /usr/bin/java /usr/lib/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz
[root@VM-0-17-centos bin]# ls -lst /usr/bin/java
0 lrwxrwxrwx 1 root root 22 Aug 20 22:22 /usr/bin/java -> /etc/alternatives/java
[root@VM-0-17-centos bin]# ls -lst /etc/alternatives/java
4 lrwxrwxrwx 1 root root 73 Aug 20 22:22 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/bin/java
根据以上显示可知JDK的安装目录为:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre
2.tomcat配置pid。
找到并编辑catalina.sh
bin/catalina.sh
# Copy CATALINA_BASE from CATALINA_HOME if not already set[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"# 设置pid。一定要加在CATALINA_BASE定义后面,要不然pid会生成到/下面CATALINA_PID="$CATALINA_BASE/tomcat.pid"
3.新建tomcat.service文件【非常重要:前提是完成第一步】
vim /lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/"
PIDFile=/usr/local/apache-tomcat-9.0.0.M6/tomcat.pid
ExecStart=/usr/local/apache-tomcat-9.0.0.M6//bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
User=root
Group=root
[Install]
WantedBy=multi-user.target
[Unit] 表示这是基础信息
Description 是描述
After 是在那个服务后面启动,一般是网络服务启动后启动
[Service] 表示这里是服务信息
Type 是服务类型
PIDFile 是服务的pid文件路径, 开启后,必须在tomcat的bin/catalina.sh中加入CATALINA_PID参数
ExecStart 是启动服务的命令
ExecReload 是重启服务的命令
ExecStop 是停止服务的指令
[Install] 表示这是是安装相关信息
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
若是中间再次修改tomcat.service文件后需要执行下面命令使其生效:
systemctl daemon-reload
3.1若是第一步没有完成直接进入第二步后,启动服务会出现一个错误
[root@VM-0-17-centos system]# systemctl start tomcat.service
Job for tomcat.service failed because a timeout was exceeded. See "systemctl status tomcat.service" and "journalctl -xe" for details.
[root@VM-0-17-centos system]# systemctl status tomcat.service
● tomcat.service - Apache Tomcat
Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: failed (Result: timeout) since Sun 2021-09-12 22:28:17 CST; 10s ago
Process: 20849 ExecStart=/usr/local/apache-tomcat-9.0.0.M6//bin/startup.sh (code=exited, status=0/SUCCESS)
Sep 12 22:26:46 VM-0-17-centos systemd[1]: Starting Apache Tomcat...
Sep 12 22:26:46 VM-0-17-centos systemd[1]: Failed to parse PID from file /usr/local/apache-tomcat-9.0.0.M6/tomcat.pid: Invalid argument
Sep 12 22:26:46 VM-0-17-centos startup.sh[20849]: Tomcat started.
Sep 12 22:28:16 VM-0-17-centos systemd[1]: tomcat.service start operation timed out. Terminating.
Sep 12 22:28:17 VM-0-17-centos systemd[1]: Failed to start Apache Tomcat.
Sep 12 22:28:17 VM-0-17-centos systemd[1]: Unit tomcat.service entered failed state.
Sep 12 22:28:17 VM-0-17-centos systemd[1]: tomcat.service failed.
此错误纠结了差不多2个小时,而且这个并不是找不到pid文件路径,若是配置好了第一步就不会出现这个问题,大哭555。
4.设置开机自启
设置开机自启动
systemctl enable tomcat..service
停止开机自启动
systemctl disable tomcat..service
启动Tomcat服务
systemctl start tomcat.service
查看服务当前状态
systemctl status tomcat..service
重新启动服务
systemctl restart tomcat.service
查看所有已启动的服务
systemctl list-units --type=service
5.配置多个TOMCAT服务
当同一个服务器上安装了多个tomcat,需要将多个TOMCAT纳入服务管理,可按照前面1到3步进行设置 tomcat.service文件名不同。
例如:tomcat-report.service tomcat-bi.servic
参照第三点进行启动或者停止即可
设置开机自启动
systemctl enable
tomcat-report..service
停止开机自启动
systemctl disable
tomcat-report
..service
设置开机自启动
systemctl enable
tomcat-bi..service
停止开机自启动
systemctl disable
tomcat-bi
..service
6.查询TOMCAT进程(或者干掉进程)
查询tomcat 进程
ps -ef | grep tomcat
[root@VM-0-17-centos ~]# ps -ef | grep tomcat
root 24636 1 0 Sep12 ? 00:01:24 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre//bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-9.0.0.M6/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -classpath /usr/local/apache-tomcat-9.0.0.M6/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.0.M6/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apachetomcat-9.0.0.M6 -Dcatalina.home=/usr/local/apache-tomcat-9.0.0.M6 -Djava.io.tmpdir=/usr/local/apache-tomcat-9.0.0.M6/temp org.apache.catalina.startup.Bootstrap start
root 31806 31741 0 10:08 pts/0 00:00:00 grep --color=auto tomcat
[root@VM-0-17-centos ~]#
若是遇到正常停止服务无效的情况,则需要杀掉进程
kill -9 进程ID(备注:根据实际情况替换值)
例如,执行命令如下:
24636是进程ID
kill -9 24636