我对傀儡很陌生,我很确定我犯了一些非常愚蠢的错误。但是我需要让木偶在流浪汉机器上启动德鲁伊群集。我无法找到比这更好的解决方案:
exec { "run_coordinator":
cwd => "/tmp/druid-services-0.6.160/",
command => "java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath lib/*:config/coordinator io.druid.cli.Main server coordinator",
path => ["/bin", "/usr/bin"],
require => [ Exec["run_zooKeeper"] ],
}
exec { "run_historical":
cwd => "/tmp/druid-services-0.6.160/",
command => "java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath lib/*:config/historical io.druid.cli.Main server historical",
path => ["/bin", "/usr/bin"],
require => [ Exec["run_coordinator"] ],
}
exec { "run_broker":
cwd => "/tmp/druid-services-0.6.160/",
command => "java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath lib/*:config/broker io.druid.cli.Main server broker",
path => ["/bin", "/usr/bin"],
require => [ Exec["run_historical"] ],
}
当我跑的时候我得到了 / stage [last] / Install_druid / Exec [run_coordinator] /返回:从notrun更改为0失败:命令超出/xxx/base.pp:xxx超时 我想我可以简单地添加&但 我确信这不是最干净的方法。有什么建议吗?提前致谢。
答案 0 :(得分:1)
当您使用&
时,添加provider => shell
可能会有效。
但是,是的,构建一个包装实际调用的简单脚本并将其分配到后台会更清晰。
#!/bin/sh
if [ "$1" == "-d" ] ; then
$0 &
exit 0
fi
PATH=/bin:/usr/bin
cd /tmp/druid-services-0.6.160/
java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath lib/*:config/broker io.druid.cli.Main server broker
构建init
脚本或类似服务控制器并使用服务资源会更清晰。
service {
'druid_broker':
ensure => 'running',
enable => true;
}
不要从/tmp
运行您的服务。那太可怕了。