我的公司使用wildfly 8.1.0.Final作为中间件,生产系统模式在域中。
出于某种原因,我们必须在自动部署之前重新启动主机控制器。
要解决这个问题,我的同事总是采取两种方式:
然后我想知道如何重新启动主机控制器而不重新启动任何其他进程。
最后我尝试了一个解决方案:kill -9 $ {host-controller pid}(主机控制器进程终止,进程控制器进程分叉一个新进程取代它。)
通过这种方式,我成功地重新启动了主机控制器,并且我已经将“--process-restarted”作为它的标志。
:
502 454 438 0 19:06 pts/0 00:00:05 /opt/jboss/java64/jdk1.7.0_25/bin/java -D[Host Controller] -Dorg.jboss.boot.log.file=/opt/jboss/domain/log/host-controller.log -Dlogging.configuration=file:/opt/jboss/domain/configuration/logging.properties -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -jar /opt/jboss/jboss-modules.jar -mp /opt/jboss/modules org.jboss.as.host-controller -mp /opt/jboss/modules --pc-address 127.0.0.1 --pc-port 43456 -default-jvm /opt/jboss/java64/jdk1.7.0_25/bin/java --backup -Djboss.home.dir=/opt/jboss
重启后kill -9 454
:
502 1080 438 99 19:16 pts/0 00:00:05 /opt/jboss/java64/jdk1.7.0_25/bin/java -D[Host Controller] -Dorg.jboss.boot.log.file=/opt/jboss/domain/log/host-controller.log -Dlogging.configuration=file:/opt/jboss/domain/configuration/logging.properties -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -jar /opt/jboss/jboss-modules.jar -mp /opt/jboss/modules org.jboss.as.host-controller -mp /opt/jboss/modules --pc-address 127.0.0.1 --pc-port 43456 -default-jvm /opt/jboss/java64/jdk1.7.0_25/bin/java --backup -Djboss.home.dir=/opt/jboss --process-restarted
我用这种方式已经好几个星期了,似乎运作良好。所以我和我的同事讨论过我们是否可以重写这个重启逻辑以进行部署 但是他们想知道进程控制器是否会无法分叉新的主机控制器。它会发生吗?
任何人都可以告诉我这种方式是否有风险?
如果我不能在自动部署脚本中使用它来重启?