tomcat开始重新启动:init.d脚本失败



我需要在重新启动Linux OS后开始使用Tomcat。我无法通过重新启动来正常工作。

OS和版本:

JRE: 1.8.0
JAVA: 1.8.0
Tomcat:  8.5.34
Linux:  Amazon Linux 2

****所有步骤以root

完成

tomcat部署配置:

1)  Install tomcat 8.5.34 using a tar.gz gzip file
2)  configure /{$TOMCAT}/conf/server.xml to use 443 connectors
3)  Deploy MicroStrategy application through deploying a .war file on restart
4)  configure SSL keys using Java Key Store
5)  configure microstrategy webapp for SAML authentication using PING

init.d脚本部署配置

注意:我已经通过/etc/init.d/tomcat和chkconfig实用程序尝试了各种脚本。
1(使用vi创建tomcat 2(插入脚本(我尝试了许多脚本,但是这个脚本似乎是 是我所需要的最清楚的,最明确的( 3(CHMOD 755/etc/init.d/tomcat 4(chkconfig -add tomcat 5(chkconfig - level 2345 tomcat(此命令不成功( 6(chkconfig -list tomcat(返回tomcat 0:off 1:off 1:off 2:off 3:oft 3:on 4:on 4:on 5:on 5:on 6:on 6:off(

该脚本的测试成功:

./etc/init.d/tomcat start
./etc/init.d/tomcat stop
./etc/init.d/tomcat restart 

确认CHKCONFIG创建了链接:

/etc/rc1.d  K20tomcat
/etc/rc2.d  K20tomcat
/etc/rc3.d  S82tomcat
/etc/rc4.d  S82tomcat
/etc/rc5.d  S82tomcat
/etc/rc6.d  K20tomcat

tomcat的脚本文件

#!/bin/sh
#
# chkconfig: 345 82 20
#
# description:  Tomcat Service

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
JRE_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
CATALINA_HOME=/opt/apache-tomcat-8.5.34
export JAVA_HOME JRE_HOME CATALINA_HOME
case $1 in
start)
cd $CATALINA_HOME/bin
./startup.sh
;;
stop)
cd $CATALINA_HOME/bin
./shutdown.sh
;;
restart)
cd $CATALINA_HOME/bin
./shutdown.sh    
./startup.sh
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

期望

我希望{$ tomcat}/webapps/root的基本URL可以从公共URL重新启动后指向该设备的公共网址访问。重新启动后,Tomcat服务仍处于停止状态。

有什么建议?

Amazon Linux 2使用systemd服务管理器,该管理器应与systemv Init Scripts 提供向后兼容 systemd-sysv-generator执行以生成服务单位/etc/init.d脚本中(我认为不建议您使用(。由于您自己正在编写脚本,因此建议您编写一个适当的服务单元。
这样的 *.service文件很可能已经存在于用于安装tomcat的tar.gz上。

使用SystemD而不是SystemV

启用tomcat

描述

使用的脚本相对简单,因为它的唯一功能是在重新启动时启动服务器。我已经使用tomcat bin中的setenv.sh建立了所有必需的环境变量。

变量

  1. 测试:任何字母数值
  2. tomcat_install_path:您安装tomcat的位置

步骤

  1. 创建一个文件tomcat@.service在/etc/etc/systemd/system
    • 可以在/etc/systemd/system/multi-user.target.wants/tomcat.service
    中找到模板

tomcat@.service

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment="CATALINA_HOME={TOMCAT_INSTALL_PATH}"
ExecStart=/opt/apache-tomcat-8.5.34/bin/startup.sh
ExecStop=$CATALINA_HOME/bin/shutdown.sh
SuccessExitStatus=143
User=root
[Install]
WantedBy=multi-user.target
  1. 创建空tomcat.pid文件(我的位于{tomcat_install_path}/conf
  2. 写catalina_pid =" {tomcat_install_path}/conf/tomcat.pid ">
  3. systemctl守护程序 - 雷亚德
  4. systemctl启用tomcat@test.service
  5. systemctl启动tomcat@test.service

故障排除

systemctl状态tomcat@test.service -L

- 此命令将向控制台提供日志输出,该控制台显示也写入SystemCtl日志的输出。我在初始设置上收到了错误,因为Tomcat无法解释哪个是主要的tomcat过程,并且在阅读其他过程的结尾时会关闭。通过在/conf文件夹中创建PID文件并在setEnv.sh中设置catalina_pid变量来克服这一点。

最新更新