2013-05-14 56 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