7

Ich habe einen RHEL-Server mit installiertem Tomcat. Tomcat läuft als ein nicht angemeldeter Benutzer namens Tomcat. Ich habe die erforderlichen Umgebungsvariablen in /etc/profile.d/myenvvars.sh alsUmgebungsvariablen für nicht angemeldete Benutzer festlegen

export JRE_HOME=/usr/lib/jvm/jre 
export MY_VAR=/usr/share/mydir 

Die Umgebungsvariablen werden gesetzt und können im Terminal hallte werden mit

# echo $MY_VAR 
# sudo -u tomcat echo $MY_VAR 

jedoch, wenn tomcat meine Umgebungsvariable beginnt nicht erkannt wird Kater.

Laut Artikel this fand ich, dass meine Umgebungsvariablen nicht erkannt werden, wenn Tomcat startet, da Tomcat ein Benutzer ohne Anmeldung ist. Daher sourced ich die obige Datei in ~/.bash_profile mit

. /etc/profile.d/myenvvars.sh 

Allerdings habe ich immer noch das gleiche Problem haben, wird die Umgebungsvariable nicht reccognised.

Jede Hilfe wäre willkommen.

Antwort

1

Wie im Artikel angegeben, müssen Ihre verknüpften Einstellungen in ~/.bashrc sein.

Es besteht die Möglichkeit, dass dies auch nicht funktioniert ... abhängig davon, wie Ihr Tomcat gestartet wird.

Sie könnten ein benutzerdefiniertes Skript für tomcat haben, um sicherzustellen, dass es die Umgebungsvariablen lädt, z. so etwas wie dieses

tomcat-start.sh

. /etc/profile.d/myenvvars.sh 
tomcat 
+0

Es ist nicht gut für die Produktion Skripte auf Shell-Startskripte wie '.bashrc' oder' .bash_profile' abzuhängen. Diese Art, die Initialisierungsschritte in das Anwendungsstartskript selbst zu setzen, ist eine viel bessere Praxis. – codeforester