Estou executando um programa java dentro de um shell e gravando a identificação do processo em um arquivo de texto. Então, quando eu faço isso:
nohup java app.Main > /dev/null 2>&1 &
echo $! > /var/run/app.pid
Funciona. Mas eu realmente quero executá-lo como outro usuário
su - appuser -c "nohup java app.Main > /dev/null 2>&1 &"
echo $! > /var/run/app.pid
Isso não funciona. Existe alguma maneira de obter a identificação do processo do comando iniciada com a opção -c?
su - appuser -c "nohup $JAVA_BIN $JAVA_CLASS > /dev/null 2>&1 & echo \$! > /tmp/appid.tmp"