De acordo com o livro de receitas do Upstart , um recurso para executar um serviço, já que um usuário diferente está planejado, mas ainda não implementado.
Se você tiver start-stop-daemon
, use-o.
exec start-stop-daemon --start -u jack --exec /home/jack/myscript.sh
Caso contrário, use su
(como você fez) ou sudo
. Observe que start-stop-daemon
sempre muda para o usuário indicado (erros de restrição), enquanto su
e sudo
obedecem a sua própria política (em particular, as políticas do PAM na maioria dos sistemas).
Observe que, no seu caso, você não precisa do script intermediário. Você pode definir variáveis de ambiente diretamente da definição de serviço do Upstart.
description "Myapp Server"
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 10 5
env JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26/
exec /home/jack/myapp/apache-tomcat-6.0.32/bin/catalina.sh run