linux下weblogic設置自啟動


1、創建WebLogic啟動腳本

以root用戶登錄,執行如下命令,創建啟動腳本:

# cd /etc/rc.d/init.d/
# vi weblogic

腳本中添加以下內容:

#!/bin/bash
# chkconfig: 345 20 80
# description: Weblogic Server auto start/stop script.
# /etc/rc.d/init.d/weblogic

# Please edit the variable
export BEA_BASE=/home/weblogic/Oracle/Middleware
export BEA_HOME=$BEA_BASE/Oracle_Home/user_projects/domains/server1/bin
export BEA_LOG=$BEA_HOME/nohup.out
#export PATH=$PATH:$BEA_HOME

BEA_OWNR="weblogic"
BEA_GROUP=su $BEA_OWNR -c "groups"

# if the executables do not exist -- display error

if [ ! -f $BEA_HOME/startWebLogic.sh -o ! -d $BEA_HOME ]
then
      echo "WebLogic startup: cannot start"
      exit 1
fi
if [ -d /data ]
then
      chown -R $BEA_OWNR:$BEA_GROUP /data
fi
# depending on parameter -- startup, shutdown, restart

case "$1" in
  start)
      echo -n "Starting WebLogic,log file $BEA_LOG: "
      touch /var/lock/weblogic
      chown -R $BEA_OWNR:$BEA_GROUP $BEA_BASE
      su $BEA_OWNR -c "cd ${BEA_HOME}; nohup ./startWebLogic.sh > $BEA_LOG 2>&1  &"
      echo "OK"
      ;;
  stop)
      echo -n "Shutdown WebLogic: "
      rm -f /var/lock/weblogic
      chown -R $BEA_OWNR:$BEA_GROUP $BEA_BASE
      su $BEA_OWNR -c "cd ${BEA_HOME}; ./stopWebLogic.sh >> $BEA_LOG"
      echo "OK"
      ;;
  reload|restart)
      $0 stop
      $0 start
      ;;
  *)
      echo "Usage: `basename $0` start|stop|restart|reload"
      exit 1
esac
exit 0

2、賦予可執行權限

執行命令:

# chmod +x weblogic

3、添加到服務列表中

# chkconfig --add weblogic

4、檢查是否添加成功

# chkconfig --list | grep weblogic
weblogic 0:關閉1:關閉2:關閉3:啟用4:啟用5:啟用6:關閉

5、使用方法

開機或重啟WebLogic應用服務器weblogic服務會自動啟動。
停WebLogic服務

# service weblogic stop(或/etc/rc.d/init.d/weblogic stop)
Shutdown WebLogic: OK

(ps:weblogic通過這種方式一般都關不掉,一般需要自己kill掉)

啟動WebLogic服務

# service weblogic start(或/etc/rc.d/init.d/weblogic start)
Starting WebLogic,log file
/weblogic/bea/user_projects/domains/csky/weblogic.log: OK

此處以上大部分內容轉載自https://blog.csdn.net/sheen1991/article/details/47088131

6、命令詳解

 (1)export:將局部變量到全局變量 (其實就是定義一個全局的環境變量)

 (2)文件比較運算符:(其中我們用到了-d和-f)

-e filename     如果 filename存在,則為真     
-d filename     如果 filename為目錄,則為真     
-f filename     如果 filename為常規文件,則為真     
-L filename     如果 filename為符號鏈接,則為真     
-r filename     如果 filename可讀,則為真 
-w filename     如果 filename可寫,則為真 
-x filename     如果 filename可執行,則為真

(3)-o:
    -o 是或者的意思  
    -a 是而且的意思  
    -not 是相反的意思

if [ ! -f $BEA_HOME/startWebLogic.sh -o ! -d $BEA_HOME ] 所以這句話的意思就是如果startWebLogic.sh不是文件或者$BEA_HOME對應的路徑不是文件夾的話,執行下面語句
(4)su命令:
-c command:變更賬號為USER的使用者,並執行指令(command)后再變回原來使用者。

(5)echo命令:
echo -n 不換行輸出
$echo -n "123"
$echo "456"
最終輸出 
123456

而不是
123
456

(6)linux中“>”和“>>”區別

> 直接把內容生成到指定文件,會覆蓋源文件中的內容,還有一種用途是直接生成一個空白文件,相當於touch命令
>>尾部追加,不會覆蓋掉文件中原有的內容

(7)$1到底啥意思?
$1在shell中稱為“位置參數”,表示傳入的第1個參數(第1個入參)。
用在shell腳本主體中,表示shell腳本的第1個入參。
用在shell腳本函數里,表示函數的第1個入參。
test -z $1 是一個判斷表達式,用於判斷$1的值是否為空字符串。
若為空,則結果為true;否則為false。

(8)2>&1 究竟什么意思?

command > /dev/null等價於command 1 > /dev/null,那么對於2>&1也就好理解了,2就是標准錯誤,1是標准輸出,那么這條命令不就是相當於把標准錯誤重定向到標准輸出么。等等是&1而不是1,這里&是什么?這里&相當於等效於標准輸出。

可能說的不是很清楚,想自己搞清楚請看這個帖子:https://blog.csdn.net/ggxiaobai/article/details/53507530

在實際工作中su $BEA_OWNR -c "cd ${BEA_HOME}; nohup ./startWebLogic.sh > $BEA_LOG 2>&1  &" 這行命令

我已改成su $BEA_OWNR -c "cd ${BEA_HOME}; nohup ./startWebLogic.sh  &" 因為nohup啟動默認就是把日志輸出到nohup.out中,不必再重定向,多此一舉

----------------------------------------2018-07-13更新------------------------

輸出日志那里我又改回去了.....不知道為什么個別服務器重啟的時候會不輸出日志到nohup.out,已改回到su $BEA_OWNR -c "cd ${BEA_HOME}; nohup ./startWebLogic.sh > $BEA_LOG 2>&1  &"

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM