Kann start-stop-daemon Umgebungsvariablen verwenden?

10

Ich muss eine Windows-App, die in Wine ausgeführt wird, dämonisieren und eine PID erstellen /var/run. Da für die Ausführung eine X11-Sitzung erforderlich ist, muss sichergestellt werden, dass die Variable $ DISPLAY in der Umgebung des laufenden Benutzers festgelegt ist.

Angenommen, ich habe bereits eine X11-Sitzung mit einer bestimmten Anzeige ausgeführt, sieht die Start-Stopp-Dämon-Zeile in meinem /etc/init.dSkript folgendermaßen aus:

start-stop-daemon --start --pidfile /var/run/wine-app.pid -m -c myuser -g mygroup -k 002 --exec /home/myuser/.wine/drive_c/Program\ Files/wine-app.exe

Leider kann meine Version von start-stop-daemon unter Ubuntu 8.04 keine -eUmgebungsvariablen festlegen. Ich verstehe, dass Sie einfach $ DISPLAY vor dem Befehl setzen könnten, wie folgt:

VAR1="Value" start-stop-daemon ...

Aber es funktioniert nicht. Da ich die -c {user}Option verwende, um als bestimmter Benutzer ausgeführt zu werden, gibt es vermutlich einen Umgebungsschalter und VAR1 geht verloren. Ich habe versucht, DISPLAY vom laufenden Benutzer zu exportieren .profileund / oder, .bashrcaber es funktioniert auch nicht.

Gibt es einen anderen Weg, dies zu tun? Ist das überhaupt möglich? Übersehe ich etwas?

scottburton11
quelle

Antworten:

3

Sie können ein Shell-Skript schreiben, um die Variable festzulegen und dann Wine auszuführen.

Teddy
quelle
Ich hatte noch keine Gelegenheit, dies in die Praxis umzusetzen, aber ich habe das Drehbuch geschrieben und es scheint der beste Weg zu sein. Danke für den Tipp!
Scottburton11
21

Sie können envdie Umgebung ändern:

start-stop-daemon --start --pidfile /var/run/wine-app.pid -m -c myuser -g mygroup -k 002 --exec /usr/bin/env VAR1="Value" /home/myuser/.wine/drive_c/Program\ Files/wine-app.exe
Jakob
quelle