Service 当chef客户端退出时,服务停止/退出
我正在打电话给Chef中的一个服务来启动weblogic节点管理器。我们有一个init.d脚本(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 我们可以看到确
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