Czy demon start-stop może używać zmiennych środowiskowych?

10

Potrzebuję demonizować aplikację Windows działającą w Wine i utworzyć pid w /var/run. Ponieważ wymaga uruchomienia sesji X11, muszę się upewnić, że zmienna $ DISPLAY jest ustawiona w środowisku uruchomionego użytkownika.

Zakładając, że mam już uruchomioną sesję X11 z danym wyświetlaczem, oto jak wygląda linia start-stop-demon w moim /etc/init.dskrypcie:

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

Niestety moja wersja start-stop-daemon na Ubuntu 8.04 nie ma -eopcji ustawiania zmiennych środowiskowych. Rozumiem, że można po prostu ustawić $ DISPLAY przed poleceniem, tak:

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

Ale to nie działa. Ponieważ używam -c {user}opcji uruchamiania jako określony użytkownik, domyślam się, że istnieje przełącznik środowiskowy i VAR1 został utracony. Próbowałem wyeksportować DISPLAY od uruchomionego użytkownika .profilei / lub, .bashrcale to też nie działa.

Czy jest na to inny sposób? Czy to w ogóle możliwe? Czy coś przeoczyłem?

scottburton11
źródło

Odpowiedzi:

3

Możesz napisać skrypt powłoki, aby ustawić zmienną, a następnie uruchomić wine.

Miś
źródło
Nie miałem okazji zastosować tego w praktyce, ale napisałem scenariusz i wydaje się, że to najlepsza droga. Dzięki za wskazówkę!
scottburton11
21

Możesz użyć envdo modyfikacji środowiska:

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
źródło