我总是以这种方式运行我的Apache服务器:
sudo service apache2 start
但在许多指南中,我看到了这样的命令:
sudo systemctl start apache2
有人可以很快写出这些命令之间的区别,并给我建议我应该在日常工作中使用什么命令?
答案 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
是用于start
,restart,
stop
和status
的“高级”命令 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
时。