Debian

如果 systemd 已經取代了 SystemV,為什麼它仍然存在並且誰在執行這個節目?

  • August 25, 2016

我正在執行 Debian 8 x64 並且仍在學習它。我在 Debian 和 Ubuntu 系統上反复遇到的令人困惑的事情之一是似乎有兩種執行和管理服務的方式:

  • service
  • systemctl

我已經閱讀了關於systemd (systemctl) 的 Debian 頁面以及諸如 Systemd如何使用 /etc/init.d 腳本之類的問題?

據我目前所知,如今許多 Linux 發行版,包括 Debian 和 Ubuntu,都在遠離舊的 SysV(系統五)並採用systemd

我可以看到 my/sbin/init是指向/lib/systemd/systemd.

問題是:

  • 如果 systemd 已經取代了 SysV,為什麼 SysV ( service) 仍然存在?
  • 為什麼我可以看似互換使用兩者?如果我在一個中啟動一個守護程序,另一個就會知道它。如何?哪一個在主持節目?
  • 是否有任何真正的理由繼續使用service或者我應該堅持使用systemctl

service命令是一個“兼容性”工具,可幫助人們從 sysvinit 遷移到 systemd。這是一個智能程序,它會嘗試計算您目前的init系統,並在必要時呼叫 sysvinit、upstart 或 systemd 呼叫。

你的問題本質上有點“告訴未來”;今天 Debian 允許不同的 init 系統工作,並且該service命令將嘗試將其全部解決。但是Debian 9?誰知道那會支持什麼……我們最終可能會superinit替換systemd,並且service命令將被更新……

問題是這個解決方案可能不是跨平台一致的;將service與 CentOS 或 SuSE 一起使用?會systemctl嗎?

如果我正在編寫自己的東西,那麼我會堅持使用systemctl所有systemd基於平台的東西,但對我支持的所有作業系統變體進行大規模測試。

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