J'exécute un programme java à l'intérieur d'un shell et j'écris l'identifiant du processus dans un fichier texte. Alors quand je fais ça:
nohup java app.Main > /dev/null 2>&1 &
echo $! > /var/run/app.pid
Ça marche. Mais je veux vraiment l'exécuter en tant qu'autre utilisateur
su - appuser -c "nohup java app.Main > /dev/null 2>&1 &"
echo $! > /var/run/app.pid
Ça ne marche pas. Existe-t-il un moyen d'obtenir le processus-id de la commande lancée avec l'option -c?
su - appuser -c "nohup $JAVA_BIN $JAVA_CLASS > /dev/null 2>&1 & echo \$! > /tmp/appid.tmp"