Service

service 和 systemctl 有什麼區別?

  • May 4, 2019

也許這是一個微不足道的問題,但對我來說並不完全清楚。在我們的一台伺服器上,我們執行了一些後台程序,這些程序以 開頭,service而其他一些以 開頭systemctl,如下所示:

$ service nginx start
$ systemctl start gunicorn

這兩個命令有什麼區別?哪一種是處理後台服務的首選方式?如何配置首選命令?

service是一個“高級”命令,用於在不同的 unix 和 linux 中啟動和停止服務。根據“較低級別”的服務管理器,service重定向到不同的二進製文件。

例如,在 CentOS 7 上它重定向到systemctl,而在 CentOS 6 上它直接呼叫相關/etc/init.d腳本。另一方面,在較舊的 Ubuntu 版本中,它重定向到upstart

service對於基本的服務管理來說已經足夠了,而直接呼叫systemctl提供了更大的控制選項。

systemctl基本上是一個更強大的版本service

With serviceyou 只能執行與服務相關的命令(即status, reload, restart),而 with systemctlyou 可以使用更高級的命令,例如:

systemctl is-failed name.service # check if service failed to load

或掩蔽服務:

systemctl mask name.service

這個頁面上有很多來自 Ask Ubuntu 的好資訊。

引用自:https://serverfault.com/questions/867322