O start-stop-daemon pode usar variáveis ambientais?

9

Eu preciso daemonizar um aplicativo do Windows em execução no Wine e criar um pid em /var/run . Como requer que uma sessão X11 seja executada, preciso ter certeza de que a variável $ DISPLAY esteja definida no ambiente do usuário em execução.

Supondo que eu já tenha uma sessão X11 em execução, com uma determinada exibição, aqui está como a linha start-stop-daemon se parece no meu script /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

Infelizmente, minha versão do start-stop-daemon no Ubuntu 8.04 não possui a opção -e para definir variáveis ambientais. Eu entendo que você poderia simplesmente definir $ DISPLAY antes do comando, assim:

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

Mas isso não funciona. Como estou usando a opção -c {user} para executar como um usuário específico, acredito que haja um switch de ambiente e a VAR1 está perdida. Eu tentei exportar DISPLAY do usuário em execução .profile e / ou .bashrc , mas ele também não funciona.

Existe outra maneira de fazer isso? Isso é possível? Eu estou negligenciando alguma coisa?

    
por scottburton11 01.04.2010 / 11:17

2 respostas

2

Você pode escrever um script de shell para definir a variável e depois executar o vinho.

    
por 01.04.2010 / 13:30
18

Você pode usar env para modificar o ambiente:

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
    
por 30.06.2011 / 13:54