Debian
嘗試通過 debian package install 啟用實例化服務
我有一個要在系統上安裝的內部配置 deb。除其他外,我希望該軟體包能夠啟用串列控制台,如http://0pointer.de/blog/projects/serial-console.html中所述。
感謝我可以
systemd enable serial-getty@ttyS0.service
在我的包的 postinst 中執行,感覺最好利用 debhelper 來確保正確的升級/解除安裝行為。但是,我發現:
- 我不能只用實例單元的名稱
dh_systemd_enable
從我的文件中呼叫;rules
它期望指向一個實際的文件(如果我執行結束執行並嘗試deb-systemd-helper
直接呼叫,也是一樣的)。- 我可以使用 debhelper 安裝目標單元,但我認為無法讓它做正確的事情。
這是我的目標單位的樣子:
[Unit] Description=Serial Console [Install] WantedBy=getty.target Requires=serial-getty@ttyS0.service
我可以啟用和/或啟動它,它顯示為在 下執行
systemctl status
,但是它不會啟動它應該需要的實例服務。所以我想我的問題分為兩部分:首先,為什麼我的目標單元沒有按預期工作,其次,在 Debian 打包下是否有最好的方法來實現這一點?
- 該
Requires
指令應出現在該[Unit]
部分中,而不是在[Install]
.- 而是
/lib/systemd/system/getty.target.wants/serial-getty@ttyS0.service -> /lib/systemd/system/serial-getty@.service
在你的包中發送一個符號連結。首先,我假設如果它存在,它serial-getty@ttyS0.service
會自動拉入getty.target
,但是如果它是串列設備,則只有為主核心控制台添加這樣的依賴關係systemd-getty-generator
,這裡不是這種情況。有關詳細資訊,請參閱http://0pointer.de/blog/projects/serial-console.htmlman systemd-getty-generator
。