Назад | Перейти на главную страницу

Может ли демон start-stop-daemon использовать переменные окружения?

Мне нужно демонизировать приложение Windows, работающее в Wine, и создать pid в /var/run. Поскольку для запуска требуется сеанс X11, мне нужно убедиться, что переменная $ DISPLAY установлена ​​в среде работающего пользователя.

Предполагая, что у меня уже запущен сеанс X11 с заданным дисплеем, вот как выглядит строка start-stop-daemon в моем /etc/init.d сценарий:

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

К сожалению, моя версия start-stop-daemon в Ubuntu 8.04 не имеет -e возможность установить переменные среды. Я так понимаю, вы можете просто установить $ DISPLAY перед командой, например:

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

Но не работает. Поскольку я использую -c {user} вариант для запуска от имени конкретного пользователя, я предполагаю, что есть переключатель среды, и VAR1 потерян. Я пробовал экспортировать ДИСПЛЕЙ из запущенного пользователя .profile и / или .bashrc но это тоже не работает.

Есть другой способ сделать это? Это вообще возможно? Я что-то не замечаю?

Ты можешь использовать env чтобы изменить среду:

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

Вы можете написать сценарий оболочки, чтобы установить переменную, а затем запустить вино.