Comandos executados pelo Upstart não possuem uma variável de ambiente HOME.
Eu usei upstart-socket-bridge em um projeto não relacionado para imprimir as variáveis de ambiente (u-s-b adiciona algumas variáveis especiais)
/etc/init/socket-test.conf:
description "upstart-socket-bridge test"
start on socket PROTO=inet PORT=34567 ADDR=127.0.0.1
setuid my_username
exec /bin/sh /tmp/socket-server
/ tmp / socket-server:
#!/bin/sh
outfile=/tmp/outfile
date > $outfile # Timestamp
printenv >> $outfile
exit 0
Acionar o trabalho:
$ nc localhost 34567
E a lista de saída das variáveis de ambiente é semelhante:
$ cat /tmp/outfile
Wed Dec 11 07:23:50 CST 2013
UPSTART_INSTANCE=
PORT=34567
PROTO=inet
UPSTART_JOB=socket-test
UPSTART_FDS=12
TERM=linux
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
UPSTART_EVENTS=socket
PWD=/
ADDR=127.0.0.1