Systemd

安裝 RPM 後自動啟動服務

  • April 5, 2022

作業系統 - 紅帽企業 Linux 8

我創建了一個.spec文件來建構和打包我的應用程序。我的rpm還包括啟動它my_app.service的文件。systemd但是,預設情況下必須使用systemctl enable my_app.service. 我想在rpm安裝後啟用它。我用Google搜尋,發現我可以使用systemd.preset,它說:

不建議在實現這些單元的相應軟體包中發送預設文件,而是將它們集中在分發或旋轉預設策略中,可以通過管理員策略進行修改。

這是否意味著我不應該.preset在我的 rpm 中添加文件?此外,在man頁面後面它說:

如果不存在預設文件,systemctl preset 將啟用預設安裝的所有單元。

如果我閱讀正確,那麼我的應用程序的服務文件應該會自動啟用,但它沒有發生,或者這意味著手冊systemctl preset

這是否意味著我不應該在我的 rpm 中添加 .preset 文件?

是的,您不應該將 .preset 文件放在服務的包 RPM 中

但它沒有發生

這不會發生,因為systemdRHEL 中的包附帶預設預設為/usr/lib/systemd/system-preset/90-systemd.preset.

如果您想堅持分發包裝指南,您有兩種選擇,即:

  • 聯繫作業系統的打包程序以將您的應用程序服務包含到預設預設中
  • 更可行的是,創建自己的運輸預設包裹。通常,您將預設發佈在您自己的儲存庫的“發布”包中。這方面的一個例子是epel-release,它安裝/usr/lib/systemd/system-preset/90-epel.preset除其他外。

引用自:https://unix.stackexchange.com/questions/696944