A sub-rotina setuid não deve estar no bloco script , é global. Esta é provavelmente a razão pela qual seu trabalho falha.
Observe que usar setuid fará com que as todas fases da tarefa sejam executadas conforme o usuário especificou e não há como alterá-las. Se você deseja executar apenas um daemon como um usuário diferente, evite sudo e use start-stop-daemon . Isso é especialmente importante com daemons de bifurcação. Verifique o Cookbook Upstart do Ubuntu, capítulo 11.43.2 para detalhes.