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

10

Preciso daemonizar um aplicativo do Windows em execução no Wine e criar um pid /var/run. Como requer a execução de uma sessão X11, preciso garantir 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, eis a aparência da linha start-stop-daemon no meu /etc/init.dscript:

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 tem a -eopção de definir variáveis ​​ambientais. Acho que você pode simplesmente definir $ DISPLAY antes do comando, assim:

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

Mas isso não funciona. Como estou usando a -c {user}opção para executar como um usuário específico, acho que há uma opção de ambiente e o VAR1 está perdido. Eu tentei exportar DISPLAY do usuário em execução .profilee / ou .bashrcmas também não funciona.

Há outra maneira de fazer isso? Isso é possível? Estou negligenciando alguma coisa?

scottburton11
fonte

Respostas:

3

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

Urso de pelúcia
fonte
Não tive a chance de colocar isso em prática, mas eu escrevi o roteiro e parece ser o melhor caminho a percorrer. Obrigado pela dica!
usar o seguinte código
21

Você pode usar envpara 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
Jakob
fonte