尝试通过 debian 软件包安装启用实例化服务

尝试通过 debian 软件包安装启用实例化服务

我有一个正在安装在系统上的内部配置 deb。除此之外,我希望该软件包能够启用串行控制台,如中所述http://0pointer.de/blog/projects/serial-console.html

很高兴我可以在我的包的 postinst 中运行,感觉最好利用 debhelper 以确保正确的升级/卸载行为。然而,我发现:systemd enable [email protected]

  • 我不能仅仅使用实例单元的名称dh_systemd_enable从我的rules文件中调用;它需要指向一个实际的文件(如果我执行结束运行并尝试deb-systemd-helper直接调用,也会发生同样的事情)。
  • 我可以使用 debhelper 安装目标单元,但我认为无法使其执行正确的操作。

这是我的目标单位的样子:

[Unit]
Description=Serial Console

[Install]
WantedBy=getty.target
[email protected]

我可以启用和/或启动它,它显示为在 下运行systemctl status,但是它不会启动它应该需要的实例服务。

所以我想我的问题分为两部分:第一,为什么我的目标单元没有按预期工作,第二,是否有最好的方法在 Debian 打包下实现这一目标?

答案1

  1. Requires指令应该出现在[Unit]部分中,而不是出现在[Install].
  2. 而是在你的包中发送一个符号链接。首先,我假设如果它存在,则会自动引入,但是如果它是串行设备,则仅为主内核控制台添加这样的依赖项,但这里不是这种情况。看/lib/systemd/system/getty.target.wants/[email protected] -> /lib/systemd/system/[email protected][email protected]getty.targetsystemd-getty-generatorhttp://0pointer.de/blog/projects/serial-console.htmlman systemd-getty-generator了解更多详情。

相关内容