Я пишу init.d-скрипт для java-приложения. Но java-приложение должно запускаться другим пользователем.
(Я использую Debian Squeeze.)
Я уже получил это:
/bin/su - $USER - c "cd $PATH;echo $PASSWORD | $JAVA -Xmx256m -jar $PATH/app.jar -d > /dev/null" & PID=$!
/bin/su - $USER - c "echo $PID > $PIDFILE"
Но это, конечно, сохранит только pid процесса "/ bin / su" вместо pid созданного java-процесса.
Выведите PID внутри команд, выполняемых "su":
/bin/su - $USER -c "cd $PATH;echo $PASSWORD | \
$JAVA -Xmx256m -jar $PATH/app.jar -d > /dev/null & echo $! > $PIDFILE"