遇到了一個特別坑的問題。
本來想着在rc.local文件里添加tomcat啟動命令,使tomcat開機自啟。之前在其他服務器上直接這樣操作是沒問題的,但很幸運的是,現在忽然就不行了。
開始排錯:
1.確定/etc/rc.d/rc.local擁有可執行權限,並且tomcat命令直接復制出來執行也是正常的.正常來說,這個正常就應該是正常的。無奈,進行下一步
2.那就查看系統啟動日志message,執行cat /var/log/messages|grep rc.local 可以發現以下報錯。即java_home和jre_home都沒有設置,而這個是必須的。由此我推測在rc.local執行前,/etc/profile里設置的系統環境變量沒有正常賦值
3.確認是否是系統環境變量獲取問題,所以我們在rc.local中打印變量(需要重啟服務器)。可以看到打印出來的變量為空,判斷正確
4.於是,試着在rc.local中重新執行系統變量賦值。即添加紅色部分內容,具體需要根據自己的java路徑修改呢
系統變量賦值語句可以直接復制/etc/profile里的java變量賦值
[root@99 ~]# tail -n 5 /etc/profile JAVA_HOME=/usr/local/jdk JRE_HOME=/usr/local/jdk/jre CLASS_PATH=.:/$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
5.重啟服務器。可以看到tomcat正常開機自啟了
題外話:這里就涉及到linux開機啟動流程問題了,所以說一些比較基礎的東西還是要知道一下的