2013-05-14 31 views
1

如何在启动时以不同用户启动Tomcat?我试过以下命令,但它提示输入密码。如何在启动时以非根启动Tomcat

su -c "/etc/tomcat/bin/catalina.sh start" tomcat 

我使用的是Tomcat 7.0.40和Ubuntu 12.04。

+0

除非你是从root shell运行它,否则你会系统会提示您输入您想要“输入”的帐户的密码。例如如果你正在运行'fred',并且你'sually',那么你会被提示输入sally的密码。 – 2013-05-14 17:29:16

+0

如果您通过apt安装Tomcat,Tomcat将不会以超级用户身份运行,除非您将其配置为。 – Bart 2013-05-14 18:01:03

+0

我使用tomcat的tar安装。尝试编辑/etc/rc.local并将类似你的命令添加到该文件中。它适用于我的情况。 – Greenhand 2013-10-23 04:40:14

回答

2

创建一个配置文件tomcat.conf,并把它下/etc/init

/etc/init包含使用新贵

tomcat.conf将类似于以下行的配置文件(注:更换JAVA_HOMECATALINA_HOME用自己的) :

description "Tomcat Server" 

    start on runlevel [2345] 
    stop on runlevel [!2345] 
    respawn 
    respawn limit 10 5 

    # run as non privileged user 
    # add user with this command: 
    ## adduser --system --ingroup www-data --home /opt/apache-tomcat apache-tomcat 
    # Ubuntu 12.04: (use 'exec sudo -u apache-tomcat' when using 10.04) 
    setuid apache-tomcat 
    setgid www-data 

    # adapt paths - Replace with your Paths: 
    env JAVA_HOME=/usr/lib/jvm/jdk1.7.0_13/ 
    env CATALINA_HOME=/home/mohammed/apache-tomcat-7.0.27/ 

    # adapt java options to suit your needs: 
    env JAVA_OPTS="-Djava.awt.headless=true -Xms512M -Xmx1024M -server -XX:+UseParallelGC" 

    exec $CATALINA_HOME/bin/catalina.sh run 

    # cleanup temp directory after stop 
    post-stop script 
    rm -rf $CATALINA_HOME/temp/* 
    end script