如何在厨师食谱的背景下运行java程序

kiw*_*isw 2 java chef-infra

我是一名厨师新秀.我想创建一个在后台运行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
Run Code Online (Sandbox Code Playgroud)

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

我希望当我登录到厨师客户端机器时.它应该表明有一个使用"jps"命令运行的jar.但是没有这样的罐子运行.

我可以看到下载的hello.jar表示代码块已经执行了.

这个食谱有什么问题?

Mar*_*nor 7

建议您将代码配置为作为服务运行.有几个包装器,例如:

完成此操作后,您可以配置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
Run Code Online (Sandbox Code Playgroud)