Este pode ser o comportamento pretendido. A página de manual mostra uma opção --env
para start-stop-daemon
:
-e|--env env-name
Set an environment variable whose name and value is env-name
before starting executable. Example: -e HOME="/home/user"
exports an environment variable whose name is HOME with value
"/home/user". Note, only one --env option is suppoted, use
/usr/bin/env if you need more.
O autor usou $HOME
no exemplo, o que considero significar que normalmente não seria definido. Não vejo outras opções para atualizar o ambiente do processo que você está iniciando.
Tente executar start-stop-daemon
da seguinte forma:
USER=guest HOME=~guest start-stop-daemon --start --exec /path/to/prog ...
Outra alternativa seria executar o script em sudo
:
start-stop-daemon --start --exec /usr/bin/sudo -- -H -u guest /path/to/prog
sudo
definirá automaticamente $USER
e a opção -H
também definirá $HOME
. Eu corri os dois com o meu próprio test.sh
que imprime o valor dessas variáveis, e ambos os atualizaram conforme desejado. Eu sou parcial para o primeiro porque ele não adiciona outro programa para o mix, mas isso é só comigo.