1、本文簡介
項目開發中使用Weblogic部署項目應用,在Linux環境下,需要了解Weblogic的啓動等相關操作。本文做一個工作筆記整理:
1.1 啓動weblogic相關
1.2 停止weblogic相關
1.3 查看weblogic進程相關
1.4 解決weblogic啓動慢問題(調優)
1.5 修改weblogic jvm 參數(調優)
2、詳細介紹
2.1 啓動weblogic相關
2.1.1 啓動weblogic,並在終端(屏幕) 輸出日誌
切入啓動腳本所在目錄(一般爲bin),輸入命令:
$ ./startWeblogic.sh &
備註:
1、僅加 & 表示 執行命令在當前會話後臺可運行,會在終端顯示,Ctrl +C 可用(切回命令行),關閉會話(如shell)執行過命令失效(已驗證);
2、僅加 nohup 表示 執行命令在關閉會話(如shell)後依舊有效,但 Ctrl +C 不可用(切回命令行),會導致執行過命令失效(待驗證);
3、nohup+& 一起使用,進程真正不受shell中Ctrl C和shell關閉的影響;
2.1.2 啓動weblogic,並指定文件輸出日誌(不指定文件路徑則在當前路徑下,且文件會自動創建)
$ nohup ./startWeblogic.sh >out.log 2>&1 &
備註:
1、linux中默認定義兩個變量:1指標準輸出;2指錯誤輸出,所以寫成這樣:command 1>output 2>error & ,正常的輸出在output文件裏,錯誤的輸出在error文件裏。這裏也等同於command >output 2>error &;
2、有時候只想保留一種,另外一個既不輸出又不保存,那就用到這個設備/dev/null,所以忽略錯誤輸出:command 1>output 2>/dev/null & ;忽略標準輸出:command 1>/dev/null 2>error &;忽略全部輸出: command 1>/dev/null 2>/dev/null
3、1,2兩種信息之間還可以進行重定向,所以這種:command 1>output 2>&1 & 表示錯誤輸出也重定向回標準輸出,即兩種信息都保存到output裏。那幹嘛不寫成command 1>output 2>output & 呢?答案是這樣不行,別看都輸出到/dev/null可以,但如果寫成相同的文件名會導致衝突,所以如果想同時保留只能是上面的寫法;同理:忽略全部輸出還可以寫成: command >/dev/null 2>&1 &;
這樣的文件輸出,每次運行會覆蓋現有的文件,如果我們希望追加而不是覆蓋,那麼就用>>符號,這樣命令就是: command 1>>log 2>>error &
2.1.3 啓動 weblogic 下 server,並指定文件輸出日誌
$ nohup ./startManagedWeblogic.sh serverName >out.log 2>&1 &
2.2 停止weblogic相關
2.2.1 停止weblogic
$ ./stopWeblogic.sh
備註:./stopWeblogic.sh 命令執行後,雖然會導致weblogic控制檯界面無法訪問,部署的應用也無法再訪問,但使用grep查看weblogic進程,會發現其他server節點相關的進程依舊存在。提起這一點,是因爲在執行./stopWeblogic.sh 後重啓weblogic,有時會出現啓動異常,這時候,grep一下weblogic的相關進程並kill掉,往往就可以啓動成功了。
2.2.2 停止weblogic server 節點
$ ./stopManagedWebLogic.sh serverName
2.3 查看weblogic進程相關
2.3.1 查看weblogic進程
$ ps -ef | grep weblogic
2.3.2 殺死weblogic進程
$ kill -9 進程ID
2.3.3 查看weblogic日誌
$ tail xxx.log -n 300 -f
備註:查看底部即最新300條日誌記錄,並實時刷新
2.4 解決weblogic啓動慢問題(調優)
網上整理出的,項目中自己使用過的是第一種。
Weblogic在Linux下啓動特別慢及進入控制檯慢的解決方法,實際是JVM在Linux下的bug,他想調用一個隨機函數,但取不到。
2.4.1 較好的解決辦法: 在Weblogic啓動參數裏添加 “-Djava.security.egd=file:/dev/./urandom” (/dev/urandom 無法啓動)
在weblogic啓動腳本里setDomainEnv.sh: 加入以下內容
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:/dev/./urandom"
export JAVA_OPTIONS
2.4.2 最差的解決辦法: 執行命令 mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random
將/dev/random 指向/dev/urandom
2.4.3 最好的解決辦法: 修改Linux上Weblogic使用的jdk $JAVA_HOME/jre/lib/security/java.security 文件,
將 securerandom.source=file:/dev/urandom 修改爲securerandom.source=file:/dev/./urandom
這樣可以解決任何一個域Weblogic啓動慢的問題。
2.4.4 其他(與 1 差不多)
JAVA_PROPERTIES="${JAVA_PROPERTIES} ${WLP_JAVA_PROPERTIES}"
export JAVA_PROPERTIES
JAVA_OPTIONS="${JAVA_OPTIONS} ${JAVA_PROPERTIES} -Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom -DUseSunHttpHandler=true -Dwlw.iterativeDev=${iterativeDevFlag} -Dwlw.testConsole=${testConsoleFlag} -Dwlw.logErrorsToConsole=${logErrorsToConsoleFlag}"
export JAVA_OPTIONS
如上,在JAVA_OPTIONS 後面加上
-Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom -DUseSunHttpHandler=true
ps:由於Windows上對/dev/urandom實現機制不一樣,所以在Windows上不會出現上述爲題。
2.5 修改weblogic jvm 參數(調優)
bin 目錄下,修改setDomainEnv.sh
if [ "${VM_TYPE}" = "HotSpot" ]; then
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m"
export WLS_MEM_ARGS_32BIT
fi
評論區歡迎討論!覺得有用點個贊再走吧。感謝!!!