我正在嘗試爲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