Estoy ejecutando un programa java dentro de un shell y escribiendo la identificación del proceso en un archivo de texto. Entonces cuando hago esto:
nohup java app.Main > /dev/null 2>&1 &
echo $! > /var/run/app.pid
Funciona. Pero realmente quiero ejecutarlo como otro usuario
su - appuser -c "nohup java app.Main > /dev/null 2>&1 &"
echo $! > /var/run/app.pid
Esto no funciona ¿Hay alguna forma de iniciar el id de proceso del comando con la opción -c?
su - appuser -c "nohup $JAVA_BIN $JAVA_CLASS > /dev/null 2>&1 & echo \$! > /tmp/appid.tmp"