java - 无法在redhat中将tomcat作为服务启动

标签 java linux tomcat service

我是 Linux 的新手,但我花了一整天时间安装了 Java 和 Tomcat。我的目标是用这个 Linux 机器来托管一个应用程序。我知道在我的基于 Windows 的机器上一切正常,但它是我的笔记本电脑,所以我打算使用 Linux Box 作为我的专用服务器。

I am following this tutorial .在本教程中,我执行了以下命令:

cd /etc/init.d 
vi tomcat 
#!/bin/bash  
# description: Tomcat Start Stop Restart  
# processname: tomcat  
# chkconfig: 234 20 80  
JAVA_HOME=/usr/java/jdk1.7.0_05  
export JAVA_HOME  
PATH=$JAVA_HOME/bin:$PATH  
export PATH  
CATALINA_HOME=/usr/share/apache-tomcat-7.0.29  

case $1 in  
start)  
sh $CATALINA_HOME/bin/startup.sh  
;;   
stop)     
sh $CATALINA_HOME/bin/shutdown.sh  
;;   
restart)  
sh $CATALINA_HOME/bin/shutdown.sh  
sh $CATALINA_HOME/bin/startup.sh  
;;   
esac      
exit 0  
chmod 755 tomcat
chkconfig --add tomcat 
chkconfig --level 234 tomcat on 
chkconfig --list tomcat 
service tomcat start  

执行此命令后,tomcat 将在端口 8082 启动。但是当我重新启动 pc 时,tomcat 并没有随着 PC 的启动而启动。

我该怎么做?

最佳答案

由于您使用的是 Red Hat,因此您可以使用 systemd 来提供服务。

创建文件/etc/systemd/system/tomcat.service:

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/java/jdk1.7.0_05
Environment=CATALINA_PID=/usr/share/apache-tomcat-7.0.29/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/share/apache-tomcat-7.0.29
Environment=CATALINA_BASE=/usr/share/apache-tomcat-7.0.29
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Duser.timezone=UTC -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/usr/share/apache-tomcat-7.0.29/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

我指定了在启用syslognetwork 后启动的脚本。 正如我们所见,systemd 将 tomcat 作为守护进程处理并终止 PID。 通过 UserGroup,我们指定了进程应该运行的用户和组。
Systemd 将处理 upstart 进程并使用 PID 杀死它。

要让它运行然后发出:

systemctl enable tomcat
systemctl start tomcat

关于java - 无法在redhat中将tomcat作为服务启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42342149/

相关文章:

tomcat 7 无法在启用 iptables 的情况下监听端口 8080

java - 安全 AJP 连接器不呈现

java - java中带分隔符的2个或多个数字

java - 在Android中同时从多个Firebase数据库引用中检索数据

java - 简单的控制结构(if 语句)

java - Tomcat 将所有子域转发到虚拟主机

java - 使用 Http 连接上传文件并计算上传字节的百分比

javascript - TypeError : game. HexRenderer 不是 Linux Mint 上的构造函数

linux - 计算 Linux 上使用的内存百分比

c - linux timeval gettimeofday printf 错误