Ich führe ein Java-Programm in einer Shell aus und schreibe die Prozess-ID in eine Textdatei. Also, wenn ich das mache:
nohup java app.Main > /dev/null 2>&1 &
echo $! > /var/run/app.pid
Es klappt. Aber ich möchte es wirklich als ein anderer Benutzer ausführen
su - appuser -c "nohup java app.Main > /dev/null 2>&1 &"
echo $! > /var/run/app.pid
Das funktioniert nicht. Gibt es eine Möglichkeit, die Prozess-ID des Befehls mit der Option -c zu starten?
su - appuser -c "nohup $JAVA_BIN $JAVA_CLASS > /dev/null 2>&1 & echo \$! > /tmp/appid.tmp"