无法使用Chef执行命令

时间:2015-06-08 13:51:05

标签: jboss automation chef chef-recipe chef-solo

我正在使用厨师自动部署。因为需要启动jboss所以我使用此代码启动它。

bash "jboss_checking" do
  code <<-EOL
     JBOSS_DIR='/home/Documents/jboss-as-7.1.1.Final'
     cd $JBOSS_DIR
     nohup ./bin/standalone.sh -b 0.0.0.0 --server-config=standalone-full.xml -bmanagement 0.0.0.0 &
  EOL
end

当我运行这个脚本jboss不会启动时。当我在.sh文件中放入相同的命令并运行它时,jboss启动了。谁能告诉我需要改变的地方?

我发现了新方法。如果我删除'&amp;'从这一行

“nohup ./bin/standalone.sh -b 0.0.0.0 --server-config = standalone-full.xml -bmanagement 0.0.0.0&amp;”

JBOSS正在运行,但它暂停了主厨脚本以继续。

1 个答案:

答案 0 :(得分:1)

我可能会这样做:

bash 'jboss_checking' do
  code <<-EOL
    nohup ./bin/standalone.sh -b 0.0.0.0 --server-config=standalone-full.xml -bmanagement 0.0.0.0 &
  EOL
  user '...username...'
  cwd '/home/Documents/jboss-as-7.1.1.Final'
  environment(
    'JAVA_HOME' => '...'
  )
end

其中

  • 明确指定工作直接
  • 定义执行命令的用户
  • 正如Tensibai已经说过的那样:您至少需要指定JAVA_HOME和其他环境变量。

更好的解决方案是部署sysv-init / upstart / systemd / launchd脚本......