我是厨师菜鸟。我想创建一个在后台运行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