【问题标题】:JBoss Init Script - Trapping issueJBoss 初始化脚本 - 捕获问题
【发布时间】:2012-07-12 20:10:06
【问题描述】:

我有一个脚本,用于启动/停止/等 JBoss AS (v7.1.1)。我在 SUSE Enterprise 11 上运行,所以提供的 initscript 不起作用。我的脚本遇到的问题是清理函数从未被调用。

#!/bin/sh

HOME="/var/rulesserver"
CURRENT=$HOME/logs/current
LOGFILE=$HOME/logs/`date -u +%Y-%m-%d-%H-%M-%S`.log
COMMAND=/usr/local/jboss/bin/standalone.sh
SELF=/usr/sbin/jboss-as-standalone

function cleanup() {
    rm $CURRENT
}

function run() {
    trap cleanup 1 2 3 6 15
    nohup $COMMAND &> $CURRENT
}

case $1 in
    "start" )
        echo "Starting the server..."
        if [ -e $CURRENT ]
        then
            echo "ERROR: The server is already running"
        else
            ln -s $LOGFILE $CURRENT
            run &
            echo "Server started"
        fi
        ;;
    "stop" )
        echo "Stopping the server..."
        killall java
        echo "Server stopped"
        ;;
    "status" )
        if [ -e $CURRENT ]
        then
            echo "The server is currently running"
        else
            echo "The server is currently stopped"
        fi
        ;;
    "cleanup" )
        cleanup
        ;;
    "restart" )
        $SELF stop
        $SELF start
        ;;
    * )
        $SELF start
        ;;
esac

【问题讨论】:

    标签: bash jboss jboss7.x init.d shell-trap


    【解决方案1】:

    standalone.sh 启动脚本中提供了一个方法,您可以使用它来控制它的行为。只需将环境变量 LAUNCH_JBOSS_IN_BACKGROUND 的值设置为某个值,即。

    LAUNCH_JBOSS_IN_BACKGROUND=true
    

    在调用脚本之前,您将不再需要 nohup 为您完成这项工作,也不需要进行清理。

    此外,还有一个选项可以告诉 JBoss AS 将“控制台输出”写入文件,这样您仍然可以拥有它将生成的消息。

    还有一件事:我个人认为 killall java 在所有可能的情况下都不是 100% 聪明的事情。

    【讨论】:

    • 我同意killall java 相当危险。我在服务器上为 JBoss 安装了 Java,所以我很确定计算机上没有其他使用 Java 的东西。
    【解决方案2】:

    我可能会感到困惑,但你能不能不这样做

    function run() {
        ( nohup $COMMAND ; rm $CURRENT )
    }
    

    $COMMAND 会阻塞直到 i 死,然后会有一个 rm 然后 subshel​​l 会退出?不需要陷阱。

    【讨论】:

    • 我不知道这会起作用。我担心如果第一个命令被杀死,第二个命令将永远不会运行。
    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多