Upstart - Führen Sie einen Befehl als anderer Benutzer aus, während /etc/environment erhalten bleibt

Upstart - Führen Sie einen Befehl als anderer Benutzer aus, während /etc/environment erhalten bleibt

Tag auch,

Ich versuche, beim Start mit Upstart als nicht privilegierter Benutzer einen Befehl/Dienst auszuführen und dabei /etc/environment beizubehalten.

Ich hatte etwas Glück in einer Muschel mit

exec sudo -u user1 -i "/usr/bin/foo /opt/bar >> /var/log/bar.log 2>&1"

Upstart scheint das jedoch nicht zu mögen (ich konnte nicht herausfinden, warum). Ich weiß, dass allgemein empfohlen wird, zu verwenden, suund ich hatte damit einige Erfolge, indem ich manuell eine Datei wie /etc/environment.local als Quelle verwendete, hatte aber Probleme, Upstart dazu zu bringen, die richtige PID zu überwachen (es lief nach bash immer weiter, statt nach /usr/bin/foo, daher der Versuch mit sudo.

Jeder Ratschlag wäre eine große Hilfe. Ich verwende Amazon Linux auf EC2.

Antwort1

Integrieren Sie einfach die Datei /etc/environment in Ihr Upstart-Skript?

if [ -e /etc/environment ]; then
    . /etc/environment
fi

verwandte Informationen