Systemctl和服务命令之间的区别

时间:2017-04-21 08:38:25

标签: apache ubuntu

我总是以这种方式运行我的Apache服务器:

sudo service apache2 start

但在许多指南中,我看到了这样的命令:

sudo systemctl start apache2

有人可以很快写出这些命令之间的区别,并给我建议我应该在日常工作中使用什么命令?

4 个答案:

答案 0 :(得分:2)

service对/etc/init.d中的文件进行操作,并与旧的init系统一起使用。 systemctl对/ lib / systemd中的文件进行操作。如果在/ lib / systemd中有一个服务文件,它将首先使用它,如果没有,它将回退到/etc/init.d中的文件。  此外,如果您使用的操作系统如ubuntu-14.04,则只有服务命令可用。

因此,如果systemctl可用,最好使用它

答案 1 :(得分:1)

服务作为 sysvinit 的辅助脚本开始,后者变成了一个包装脚本,无论使用 sysvinit 还是 systemd 都可以正常工作。

答案 2 :(得分:0)

this answer借用:

  

service是用于startrestart, stopstatus的“高级”命令    Unixes Linuxes 中的各种服务。取决于   “低级”服务管理器,服务在不同的重定向   二进制文件。

     

例如,在 CentOS 7 上,它重定向到systemctl,而在 CentOS 6 上,重定向到   它直接称为相对/etc/init.d脚本。在另一   另一方面,在较旧的Ubuntu版本中,它会重定向到新贵。

     

service足以进行基本服务管理,而直接   调用systemctl可以提供更大的控制选项。

然后systemctl从以下目录运行服务文件:/lib/systemd

答案 3 :(得分:0)

我选择 service 更可靠,尤其是在自动化任务中。它为不同的 init 系统包装了命令,因此您可以将它用于较旧的发行版并期望得到相同的结果。在我的观察中,systemd 单元通常没有可用的 reload 命令(更新守护进程配置,没有进程终止),当它正常使用 service <service-name> reload 时。