Service 当chef客户端退出时,服务停止/退出

Service 当chef客户端退出时,服务停止/退出,service,weblogic,chef-infra,Service,Weblogic,Chef Infra,我正在打电话给Chef中的一个服务来启动weblogic节点管理器。我们有一个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中的一个服务来启动weblogic节点管理器。我们有一个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客户端运行完成,它就会终止节点管理器脚本。我们尝试了守护进程nohup的每一种组合,但都没有成功。知道为什么当chef客户端退出时脚本会被终止吗?

使用“&”意味着它将当前命令作为子进程在后台运行,但仍然附加到当前进程。这意味着一旦chef客户端启动的父进程退出,所有子进程都将注册。因此,不会终止节点管理器脚本。您可以使用
ps aux
检查列PID和PPID来验证这一点

理想的修复方法是使用
守护进程
在init.d脚本中没有tty的专用用户/组下运行节点管理器

快速修复方法是使用
nohup

su nohup weblogic -c /opt/ora/mw/wlserver_10.3/server/bin/startNodeManager.sh &>/dev/null &
使用“&”意味着它将当前命令作为子进程在后台运行,但仍然附加到当前进程。这意味着一旦chef客户端启动的父进程退出,所有子进程都将注册。因此,不会终止节点管理器脚本。您可以使用
ps aux
检查列PID和PPID来验证这一点

理想的修复方法是使用
守护进程
在init.d脚本中没有tty的专用用户/组下运行节点管理器

快速修复方法是使用
nohup

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

为我工作,只需要换掉nohup就可以站在前面。
/dev/null
似乎是关键。我曾经试过daemon和nohup,而nohup以前为我工作过,只是需要把nohup换成最前面的。
/dev/null
似乎是关键。我以前试过daemon和nohup