User www, ~ und Classpath (tomcat)

From: J. Erik Heinz <jheinz(at)much-magic.wiwi.uni-frankfurt.de>
Date: Sat, 12 Mar 2005 16:08:07 +0100

Hi,

ich bin gerade dabei den Tomcat zu konfigurieren. Dabei wird Tomcat
beim start über /usr/local/etc/rc.d/020.jakarta-tomcat50.sh vom user
www gestartet.

Nun brauche ich für diesen einen CLASSPATH, damit Tomcat auf diesen
Zugreifen kann.
Defaultmässig hat www das homeverzeichnis:/nonexistent und die
Shell:/usr/sbin/nologin. Das hab ich mit chpass geändert und ihm das
Verzeichnis /home/www und die bash zu gewiesen. Im homeverzeichnis
(welches ich nachträglich mit mkdir erstellt habe)
liegt nun die .profile mit den CLASSPATH angaben.

mach ich nun ein 'su www' switche ich zwar zu www, jedoch wird die
~/.profile nicht eingelesen. ein cd ins Homeverzeichnis und ein source
.profile bringt erst beim zweiten mal das gewünschte ergebnis
(einlesen des .profile), beim ersten mal wird komischerweise das
.profile vom vorhergehenden user ge-sourced - keine Ahnung warum (ich
erkenne das, da bei mir jeder user einen farblich unterschiedlichen
Prompt hat - und beim ersten sourcen ist es die falsche Farbe).

Desweiteren wird auch nicht die /etc/profile eingelesen. Hier habe ich
ebenfalls CLASSPATH angaben. Wenn ich diese nachträglich source, dann erhalte
ich folgende Meldungen:
declare -x BLOCKSIZE="K"
declare -x CATALINA_HOME="/usr/local/jakarta-tomcat5.0"
declare -x
CLASSPATH="/usr/local/tomcat/webapps/sample:/usr/local/tomcat/webapps/sample/sample:"
declare -x CLICOLOR="yes"
[...]
warum weiss ich auch nicht. Weiter unten hab ich nochmal die
/etc/profile und die /home/www/.profile aufgelistet.

a) Ich würde jetzt mal gerne wissen, ob beim booten nun auch die
/etc/profile und die /home/www/.profile eingelesen wird, wenn das
skript /usr/local/etc/rc.d/020.jakarta-tomcat50.sh ausgeführt wird -
und somit die gewünschten Infos zur verfügung stehen?

b) Wie stelle ich es an das bei 'su www' gleich auch die RICHTIGE
.profile eingelesen wird.

c) Warum bekomme ich die 'declare -x' Meldungen wenn ich die
/etc/profile source. Normalerweise wird doch die /etc/profile vor der
~/.profile gesourct, daher müsste ich die doch nicht nachträglich
sourcen?

--- /etc/profile ---
export CATALINA_HOME=/usr/local/jakarta-tomcat5.0
# eigentlich jdk1.4.2 - hab aber ein symlink auf java gemacht
export JAVA_HOME=/usr/local/java
export
CLASSPATH=$CATALINA_HOME/common/lib/servlet-api.jar:$CATALINA_HOME/common/lib/jsp-api.jar:$CLASSPATH

--- /home/www/.profile ---
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:$HOME/bin:.;
export PATH
export EDITOR=vim

CLASSPATH=/usr/local/tomcat/webapps/sample:/usr/local/tomcat/webapps/sample/sample:$CLASSPATH;
export CLASSPATH
# Deutsche Einstellung für das TastaturLayout
export LANG=de
export LC_ALL=de_DE.ISO8859-15
[...]

--- /usr/local/etc/rc.d/020.jakarta-tomcat50.sh ---
MYSELF=`basename $0`

case "$1" in
    start)
        echo -n ' '
        truncate -s 0 /var/run/tomcat50.pid
        chown www:www /var/run/tomcat50.pid
        chmod 600 /var/run/tomcat50.pid
        su -f -m www -c "exec /usr/local/bin/tomcat50ctl start"
>/dev/null && echo -n 'tomcat50'
        ;;
    stop)
        echo -n ' '
        chown www:www /var/run/tomcat50.pid
        chmod 600 /var/run/tomcat50.pid
        su -f -m www -c "exec /usr/local/bin/tomcat50ctl stop"
>/dev/null 2>&1 ; echo -n 'tomcat50'
        ;;
    *)
        echo ""
        echo "Usage: ${MYSELF} { start | stop }"
        echo ""
        exit 64
        ;;
esac

Grüsse Erik
 

-- 
J. Erik Heinz
Koblenzer Str. 11
60327 Frankfurt am Main
Handy: 0163 337 37 45
Mail: jheinz(at)wiwi.uni-frankfurt.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 12 Mar 2005 - 16:08:16 CET

search this site