Service
service 和 systemctl 有什麼區別?
也許這是一個微不足道的問題,但對我來說並不完全清楚。在我們的一台伺服器上,我們執行了一些後台程序,這些程序以 開頭,
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
service
you 只能執行與服務相關的命令(即status
,reload
,restart
),而 withsystemctl
you 可以使用更高級的命令,例如:
systemctl is-failed name.service # check if service failed to load
或掩蔽服務:
systemctl mask name.service
這個頁面上有很多來自 Ask Ubuntu 的好資訊。