【问题标题】:Jboss 7.1.1 start/stop scriptJboss 7.1.1 启动/停止脚本
【发布时间】:2012-08-06 09:46:12
【问题描述】:

有人能告诉我如何使用 Shell 脚本 在 MAC 中启动/停止 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 中,它不会停止服务器。请有人帮忙解决这个问题。

【问题讨论】:

  • 您的回答是否足够,或者您还需要什么?

标签: java jakarta-ee jboss7.x


【解决方案1】:

这就是我的做法:

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

我在一个名为 killjboss 的 bash 文件中有这个,它对我很有效。

【讨论】:

  • kill $(ps aux | grep 'process name' | grep -v grep | awk '{print $2}') ps aux 的另一个变体
【解决方案2】:

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

你会得到一个接近这个的输出:

 eugene@eugenes-MacBook-Pro ~/D/J/j/bin> ps -ef | grep jboss
 501  1471  1446   0  1:32AM ttys000    0:03.31 /usr/....

然后发出:

 kill -9 1471

最后你可以使用 JBoss 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 **********";

请注意,我删除了几行并将 java 更改为 jboss

把它放在一个名为 stopJboss.sh 的文件中

然后:

 sudo chmod +x stopJBoss.sh

然后在需要时调用它:

 ./stopJBoss.sh

这仅在您运行一个 JBoss 实例时才有效,更多情况下您将需要不同的脚本。

附:我不是脚本方面的专家,但这就是这行代码的作用:

 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 命令。

【讨论】:

  • 我发布了一个脚本来停止服务器。请查看并帮助我解决问题
  • 感谢您的代码。正如你所说,我改变了脚本。但它不会杀死我的进程。如果您有其他想法,请帮助我。
  • @user1029292 这真的很奇怪,因为我已经在我的 Macbook 上用 JBOSS 7.1.1 测试了它,它确实是工作人员。好的,你可以这样做:启动 Jboss : ./stanadalone.sh &;然后发出:ps -ef | grep jboss;然后运行脚本;然后发出 ps -ef| grep jboss。输出问题中的所有命令。
  • 在我的例子中,我做了一些改动:ps -ef | grep jboss | grep 服务器 | awk '{打印 $2}' | xargs 杀死
【解决方案3】:

通过命令行关闭服务器

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

假设您在 localhost 上运行并使用默认的本机管理端口,即 9999

如果没有,你需要指定在standalone.xml中配置的IP(jboss.bind.address)和本机管理端口(jboss.management.native.port)

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

【讨论】:

    【解决方案4】:

    在 Google 上潜水后,我设法完成了这项工作:

    #!/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
    

    :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 2016-03-19
      相关资源
      最近更新 更多