Gus*_*uss 8 ubuntu systemd services deb
我正在构建一堆服务以安装在我自己的(自动创建的)服务器上。我正在从 Ubuntu 14.04 上的 upstart 迁移到 Ubuntu 16.04,其中默认启用服务(如果我们不想在安装时启动,我们必须做额外的工作),到 Ubuntu 16.04,我们希望使用 systemd 作为新的本机服务框架。
这些服务是使用我自己创建的 deb 包安装的。我通过添加和添加一个--with systemd来升级 deb 创建rulespackage-name.servicesystemd 单元规范。
我发现的问题是,即使我添加了一个[Install]带有的部分WantedBy=multi-user.target,该服务也不会在系统上启动。
相反,该服务被安装,然后systemctl status package-name显示:
? package-name.service - My Service
Loaded: loaded (/lib/systemd/system/package-name.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)
我的.bashrc 中没有任何 systemd 覆盖rules,正如我从带有 systemd 页面的Debian 包装以及dh_systemd_enable 手册页中了解到的那样,如果我选择不启用,我可以使用它来不启用服务。
同样从状态显示的外观来看,似乎dh-systemd确实启用了服务(供应商预设位),但这还不够。我错过了什么?
实际上,您不需要在override_dh_auto_install.
您需要--with systemd(with和之间没有破折号systemd)rules和dh-systemd安装的软件包。
我通过从规则中的 override_dh_auto_install 目标手动调用 dh_systemd_enable (使服务默认运行)和 dh_systemd_start (在安装后实际启动它)来解决这个问题,所以它看起来像这样:
%:
dh $@ --with-systemd
override_dh_auto_install:
dh_auto_install
dh_systemd_enable || true
dh_systemd_start || true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15374 次 |
| 最近记录: |