当厨师 - 客户退出时,服务停止/退出

时间:2013-10-15 23:15:43

标签: service weblogic chef

我正在调用Chef中的服务来启动weblogic nodemanager。我们有一个init.d脚本(service nodemanager start),它对nodemanager进行以下调用:

su weblogic -c /opt/ora/mw/wlserver_10.3/server/bin/startNodeManager.sh &

我们正在运行一个简单的测试配方如下:

service "nodemanager" do
  action :start
end

我们可以看到确实正在调用/启动节点管理器脚本,但是一旦chef-client运行完成,它就会终止节点管理器脚本。我们似乎尝试了守护程序 nohup 的所有组合,但无济于事。当厨师 - 客户退出时脚本被杀的任何想法?

1 个答案:

答案 0 :(得分:4)

使用“&”意味着它将当前命令作为子进程在后台运行但仍附加到当前进程。这意味着一旦父进程由chef-client出口启动,所有子进程都将获得SIGNUP。因此节点管理器脚本不会被杀死。您可以使用ps aux检查列 PID PPID 来验证这一点。

理想的解决方法是使用daemon在init.d脚本中没有tty的专用用户/组下运行节点管理器。

快速解决方法是使用nohup

su nohup weblogic -c /opt/ora/mw/wlserver_10.3/server/bin/startNodeManager.sh &>/dev/null &