我正在尝试为java程序编写一个init服务脚本。我在init脚本中有以下内容。获取子shell命令的pid
$USER = awesomeuser
$PROGRAM_CMD = "java -server com.test.TestClass"
$PROGRAM_LOG = "/var/log/awesome_log"
sudo -u $USER nohup $PROGRAM_CMD >> $PROGRAM_LOG 2>&1 </dev/null &
server_pid=$!
echo $server_pid > $pidfile
发生了什么是我得到父进程的PID,但我真的想要从子shell内运行的Java进程的PID。
是否有无论如何我可以构造命令,所以我得到的subshell命令pid回来?
谢谢!
'$ USER = awesomeuser' - 这真的是'bash'吗?看起来像PHP。 –
你需要学习基本的'bash'语法。变量赋值就像'USER = awesomuser' - 变量前面没有'$',并且在'='周围没有空格。 – Barmar