我使用Linux/upstart启动我的jar文件。
我是这样做的:
- 使用lein uberjar生成myapp.jar
- 通过scp将myapp.jar复制到专用服务器上
- ssh到专用服务器
- 停止myapp.jar
- 将jar文件复制到目标目录(因此upstart可以找到它)
- 启动myapp.jar
有几个问题:
- 执行步骤1、2、3和6很繁琐。我认为可以在脚本中完成,但我不确定在停止myapp之前替换myapp.jar是否安全。更改正在运行的jar文件是否安全?
- 步骤5和7之间的延迟约为10秒。是否可以立即更新myapp.jar?更有趣的是:是否可以现场更新:例如,我已经打开了连接,我想保存它们。
- 是否可以像Erlang一样进行部署?如果部署失败,它会加载以前的版本。