2012-08-06 210 views
2

有人可以告訴如何使用Shell腳本在MAC中啓動/停止Jboss-7.1.1服務器。Jboss 7.1.1啓動/停止腳本

stop_viewer(){ 
echo "********* Stopping JBoss Server by killing the process **********"; 
ps | grep domain.sh | grep -v grep | awk '{print $1}' | xargs kill 
ps | grep java | grep -v grep | awk '{print $1}' | xargs kill 
ps -ef | grep superuser | grep java | grep -v grep | awk '{print $2}'| xargs kill 
echo "********* Stopped JBoss Server by killing the process **********"; 

} 

上述腳本在Jboss-7.0.2中正常工作以停止服務器。但在Jboss-7.1.1中,它不會停止服務器。請有人幫忙解決這個問題。

+0

對於您的答案是否足夠,或者您還可能需要其他什麼? – Eugene 2012-08-06 12:38:36

回答

15

1)首先你需要安裝JBoss。 (我假設你已經安裝了有效的Java版本)。

2)一旦被下載,解壓後的文件夾:

cd /Users/eugene/Downloads 

mkdir JBOSS-7 

cp /Users/eugene/Downloads/jboss-as-7.1.1.Final.zip /Users/eugene/Downloads/JBOSS-7 

cd /Users/eugene/Downloads/JBOSS-7 

unzip /Users/eugene/Downloads/jboss-as-7.1.1.Final.zip 

3)

cd Users/eugene/Downloads/JBOSS-7/jboss-as-7.1.1.Final/bin 

./standalone.sh 

如果你想停止它:

ctrl + c 
當然

你的路徑可能不一樣。如果你想在後臺運行它,然後就去做:

./standalone.sh & 

停止服務:

ps -ef | grep jboss 

您將接近得到一個輸出到這一個:

[email protected] ~/D/J/j/bin> ps -ef | grep jboss 
501 1471 1446 0 1:32AM ttys000 0:03.31 /usr/.... 

,然後發出:

kill -9 1471 

最後用JBo SS CLI可以執行:

./jboss-cli.sh --connect ":shutdown" 

編輯

腳本似乎已做的工作,你所要做的就是編輯了一下:

#!/bin/sh 

echo "********* Stopping JBoss Server by killing the process **********"; 
ps -e | grep jboss | grep -v grep | awk '{print $1}' | xargs kill 
echo "********* Stopped JBoss Server by killing the process **********"; 

注意,我刪除幾行,改變的JavaJBoss的

將這個在一個名爲stopJboss.sh

然後文件:

sudo chmod +x stopJBoss.sh 

需要時最後調用它:

./stopJBoss.sh 

,如果你有JBoss上運行的單個實例這隻會工作,對於更多,你將需要一個不同的腳本。

P.S.我不是在腳本一個大師,但這裏是這一行做什麼:

ps -e | grep jboss | grep -v grep | awk '{print $1}' | xargs kill 

這是要尋找包含JBoss的關鍵字每一道工序。但它也會輸出grep命令本身,因此您將獲得兩條命令的輸出,但只需要第一條命令。

你可以運行ps -e | grep jboss並查看輸出包含兩行而不是一行。

這就是爲什麼你調用grep -v grep--這意味着:在這兩行發現grep爲grep,但反轉結果,這樣就省略了第二個不需要的結果。

然後,awk'{print $ 1}'將字符串拆分爲令牌並獲取第一個,這是您需要的PID,然後使用xargs命令將此PID傳遞給kill命令。

+0

我發佈了一個腳本來停止服務器。請看看它並幫我解決問題 – Suresh 2012-08-07 05:55:06

+0

@ user1029292查看我的更新回答 – Eugene 2012-08-07 06:15:17

+0

感謝您的代碼。正如你所說,我改變了腳本。但它並沒有殺死我的過程。如果您有其他想法,請幫助我。 – Suresh 2012-08-07 12:39:34

6

要關機通過命令行

sh ./bin/jboss-cli.sh --connect command=:shutdown 

服務器假設你在本地主機上運行,​​並且使用默認的本地管理端口即9999

如果不是你需要指定IP(jboss.bind。地址),並在standalone.xml

sh ./bin/jboss-cli.sh --connect controller=<IP>:<native-mgmt-port> command=:shutdown 
1

在谷歌潛水後配置的本地管理端口(jboss.management.native.port),我成功地把這個工作:

#!/bin/sh 
    ### BEGIN INIT INFO 
    # Provides: jboss 
    # Required-Start: $local_fs $remote_fs $network $syslog 
    # Required-Stop: $local_fs $remote_fs $network $syslog 
    # Default-Start: 2 3 4 5 
    # Default-Stop: 0 1 6 
    # Short-Description: Start/Stop JBoss AS v7.1.1 
    ### END INIT INFO 
    # 
    #source some script files in order to set and export environmental variables 
    #as well as add the appropriate executables to $PATH 

    export JAVA_HOME=/usr/lib/jvm/java-7-oracle 
    export PATH=$JAVA_HOME/bin:$PATH 

    export JBOSS_HOME=/home/gaspar/jboss-as-7.1.1.Final 
    export PATH=$JBOSS_HOME/bin:$PATH 

    case "$1" in 
    start) 
    echo "Starting JBoss AS 7.1.1" 
    #original: 
    #sudo -u jboss sh ${JBOSS_HOME}/bin/standalone.sh 

    #updated: 
    start-stop-daemon --start --quiet --background --chuid jboss --exec ${JBOSS_HOME}/bin/standalone.sh 
    ;; 
    stop) 
    echo "Stopping JBoss AS 7.1.1" 
    #original: 
    #sudo -u jboss sh ${JBOSS_HOME}/bin/jboss-admin.sh --connect command=:shutdown 

    #updated: 
    sudo -u jboss sh ${JBOSS_HOME}/bin/jboss-cli.sh --connect command=:shutdown 
    ;; 
    *) 
    echo "Usage: /etc/init.d/jboss {start|stop}" 
    exit 1 
    ;; 
    esac 

    exit 0 

:)

0

這是我要做的事:

ps -ef | grep jboss | grep -v grep | awk '{print $2}' | xargs kill -9 

我有這樣的,我稱之爲killjboss一個bash文件,並與我工作得很好。