Crie o ambiente em seu script de inicialização se a solução do Mugen kenichi não for uma opção. Eu tenho alguns scripts de inicialização que usam a abordagem do Mugen e outros que originam o ambiente diretamente no script. Muitas vezes é simplesmente uma questão de preferência. Fornecer o ambiente diretamente no script de inicialização é mais transparente para outros usuários que podem editar o script (ou daqui a 6 meses).
Como meu ambiente é composto de muitas condicionais, é mais fácil ser implícito. Aqui estão as primeiras linhas de um dos meus scripts de inicialização:
#!/bin/bash
. /my/tools/environment/apps/apps_rc
. /my/tools/environment/functions/common.bash
Quando isso for feito, use su normalmente para iniciar o processo como o usuário em questão.
Aqui está uma amostra de como eu inicio processos similares usando su
.
su -l $USER -c "nohup $APP_PATH" >> $LOG_FILE 2>&1 < /dev/null &
Como opção, você também pode ver o pacote daemonize . Eu uso bastante também.
Finalmente ...
A partir da sua pergunta, parece que você pode querer executar o script como um usuário privilegiado, você pode realmente precisar definir o bit setuid no script para permitir que ele seja executado como root por um uso normal. Isso pode ter uma implicação de segurança, então saiba o que você está fazendo quando faz isso.