我正在为 java 应用程序编写 init.d 脚本。但该 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"
但这当然只会保存“/bin/su”进程的 pid,而不是创建的 java 进程的 pid。
答案1
在“su”执行的命令中回显 PID:
/bin/su - $USER -c "cd $PATH;echo $PASSWORD | \
$JAVA -Xmx256m -jar $PATH/app.jar -d > /dev/null & echo $! > $PIDFILE"