【问题标题】:Can't start tomcat as service in redhat无法在redhat中将tomcat作为服务启动
【发布时间】:2017-02-20 10:30:30
【问题描述】:

我是 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 的启动而启动。

我该怎么做?

【问题讨论】:

    标签: java linux tomcat service


    【解决方案1】:

    由于您使用 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
    

    【讨论】:

    • 请告诉我的脚本/程序有什么问题。
    • 试试 chkconfig sudo /sbin/chkconfig --add tomcat sudo /sbin/chkconfig --list tomcat sudo /sbin/chkconfig tomcat on
    • 注意:将请求转发到“systemctl enable tomcat.service”。无法发出方法调用:错误消息
    【解决方案2】:

    尝试改用这个命令:

    sudo systemctl enable tomcat
    

    【讨论】:

      猜你喜欢
      • 2014-08-30
      • 2022-01-13
      • 2015-08-27
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      相关资源
      最近更新 更多