预期进程以[0]退出,但收到''

时间:2014-02-05 12:31:12

标签: shell chef chef-recipe

我的chef中有execute resource recipe。当我的chef-client运行此资源时,我收到错误:

 Expected process to exit with [0], but received ''

资源:

  execute "startHAPROXY" do
    command "cd /home/#{node["haproxyUser"]}/haproxy && ./start.sh"
    action :nothing
  end

start.sh:

#!/bin/sh
kill -9 `ps -ef | grep haproxy | grep -v grep | awk '{print $2}'`
cd /home/lb/haproxy
/home/lb/haproxy/haproxy -f /home/lb/haproxy/haproxy.cfg
exit $?

当我手动运行它(./start.sh; echo $?)时,它会回显0,但当chef-client运行它时,它会失败。

1 个答案:

答案 0 :(得分:2)

试试这个:

食谱:

execute "startHAPROXY" do
  command "./start.sh"
  cwd "/home/#{node["haproxyUser"]}/haproxy"
  action :nothing
end

start.sh:

#!/bin/bash -e
kill -9 `ps -ef | grep haproxy | grep -v grep | awk '{print $2}'`
cd /home/lb/haproxy
/home/lb/haproxy/haproxy -f /home/lb/haproxy/haproxy.cfg
  1. 您最好使用cwd资源的execute属性来更改工作目录。
  2. 将脚本更改为“bash”并添加“-e”,以便在遇到第一个错误时失败。
  3. 最后您不需要exit $?,因为脚本的退出状态将自动成为其中最后一个命令的退出状态。