使用 systemd 在 Ubuntu 16.04 上播放框架部署
Posted
技术标签:
【中文标题】使用 systemd 在 Ubuntu 16.04 上播放框架部署【英文标题】:play framework deployment on Ubuntu 16.04 with systemd 【发布时间】:2017-09-07 12:57:25 【问题描述】:当我按照official docs 的 deb 样式部署说明进行操作时,我在 Ubuntu 16.04 上收到以下错误消息:
选择以前未选择的包 my-app。 (正在读取数据库...当前安装的 310635 个文件和目录。) 准备解压.../my-app_1.0-SNAPSHOT_all.deb ... 解压我的应用程序 (1.0-SNAPSHOT) ... 设置我的应用程序 (1.0-SNAPSHOT) ... initctl:无法连接到 Upstart:无法连接到套接字 /com/ubuntu/upstart:连接被拒绝 无法启动 my-app.service:未找到单元 my-app.service。 my-app 无法注册或启动 处理 ureadahead (0.100.0-19) 的触发器 ...
我认为这是因为 Upstart 已被弃用,但构建系统正在生成依赖于 Upstart 的 deb。有什么方法可以使用 deb 文件部署到 Ubuntu 16.04 并有一个工作的 systemd 服务?
【问题讨论】:
【参考方案1】:在您的 build.sbt
中,添加以下内容:
import com.typesafe.sbt.packager.archetypes.ServerLoader
serverLoading in Debian := ServerLoader.Systemd
生成的.deb
现在应该使用 SystemD 而不是 Upstart。
【讨论】:
【参考方案2】:Salem 的回答对于 1.2.x 之前的版本是正确的。对于 1.2.x 及更高版本,您必须启用正确的自动插件才能启用系统加载器支持。
``` enablePlugins(SystemdPlugin) ````
有关可用选项,请参阅文档: packager.readthedocs.io/en/v1.2.0-m9/archetypes/systemloaders.html
【讨论】:
以上是关于使用 systemd 在 Ubuntu 16.04 上播放框架部署的主要内容,如果未能解决你的问题,请参考以下文章