我是厨师菜鸟。我想创建一个在后台运行jar的配方。

bash 'run_jar' do
    code <<-EOH
    wget https://github.com/kiwiwin/jar-repo/releases/download/kiwi/helloworld-1.0.jar -O hello.jar
    java -jar hello.jar &
    EOH
end


helloworld-1.0.jar是一个程序,首先打印“ Hello World”,然后执行while(true)循环。

我希望当我登录到厨师客户端计算机时。它应该指示使用“ jps”命令运行的jar。但是没有运行这样的jar。

而且我可以看到hello.jar已下载,这表明代码块已被执行。

这个食谱怎么了?

最佳答案

最好建议您将代码配置为作为服务运行。有几种包装器,例如:


http://wrapper.tanukisoftware.com/doc/english/app-hello-world-server.html


完成此操作后,您可以配置Chef以管理新服务:

service "myapp_service" do
  supports :status => true, :restart => true
  start_command "/usr/lib/myapp/bin/myapp start"
  restart_command "/usr/lib/myapp/bin/myapp restart"
  status_command "/usr/lib/myapp/bin/myapp status"
  action [ :enable, :start ]
end

09-11 18:43
查看更多