我有一个akka scala应用程序,我可以将其构建为一个jar。然后,我可以通过Jenkins将jar发送到远程服务器。然而,我不知道如何正确部署该应用程序。
第一个问题是删除我的应用程序的以前实例。如果在Jenkins我尝试执行以下命令 pkill -f %proc% 或 ps ax | grep ... | awk ... | xargs kill -9 通过ssh,Jenkins以返回代码1结束,即使我添加了 || true 到这些命令的末尾。
pkill -f %proc%
ps ax | grep ... | awk ... | xargs kill -9
|| true
第二个问题是启动应用程序。我可以用 nohup java -jar ... & 命令,但它并没有真正启动,尽管我可以在进程列表中看到它。
nohup java -jar ... &
如果我手动执行命令(甚至通过ssh),这些问题都不会发生 。
我的问题是——我做错了什么?执行此类任务的正确方式是什么?我是否使用了错误的工具?
考虑使用 something like supervisord 用于启动/停止应用程序,并在发生崩溃或服务器重新启动时重新启动应用程序。