我需要在重新启动Linux OS之后启动tomcat。我无法通过重新启动来使init.d正常运行。
操作系统和版本:
JRE: 1.8.0
JAVA: 1.8.0
Tomcat: 8.5.34
Linux: Amazon Linux 2
****所有完成的步骤均作为根源
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-添加tomcat
5)开启chkconfig --level 2345 tomcat(此命令不成功)
6)chkconfig --list tomcat(返回tomcat 0:off 1:off 2:off 3:on 4:on 5: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
期望
我希望重启后从指向该设备的公共URL可以访问{$ TOMCAT} / webapps / ROOT的基本URL。重启后,tomcat服务仍处于停止状态。
有什么建议吗?
答案 0 :(得分:1)
Amazon Linux 2使用systemd
服务管理器,该服务管理器应与systemv
执行以生成的systemd-sysv-generator
初始化脚本向后兼容。 /etc/init.d
脚本之外的所有服务单元(我认为您不建议这样做)。
由于您自己编写脚本,因此建议您编写适当的service unit。
这样的* .service文件很可能已经在用于安装tomcat的tar.gz中存在。
答案 1 :(得分:1)
使用的脚本相对简单,因为它的唯一功能是在重新引导时启动服务器。我已经使用TOMCAT bin中的setenv.sh建立了所有必需的环境变量。
[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
systemctl状态为tomcat@test.service -l </ p>
-此命令将日志输出到控制台,该控制台显示也会写入到systemctl日志中的输出。我在初始设置时收到错误,因为tomcat无法解释哪个是主要的tomcat进程,并且在读取其他进程的结尾时将关闭。通过在/ conf文件夹中创建一个pid文件并在setenv.sh中设置CATALINA_PID变量,可以解决此问题。