我总是以这种方式运行Apache服务器:
sudo service apache2 start
但在许多指南中,我看到了这样的命令:
sudo systemctl start apache2
有人能在短期内写出这些命令之间的区别,并就我在日常工作中应该使用的命令给我建议吗?
发布于 2017-04-21 10:12:02
service
对/etc/init.d中的文件进行操作,并与旧的init系统一起使用。systemctl
对/lib/systemd中的文件进行操作。如果您的服务在/lib/systemd中有一个文件,它将首先使用该文件,如果没有,它将回到/etc/init.d中的文件中。另外,如果您正在使用像ubuntu-14.04这样的操作系统,那么只有服务命令是可用的。
因此,如果systemctl可用,最好使用它。
发布于 2018-11-30 09:35:32
向this answer借款
service
是一个“高级”命令,用于start
、restart,
stop
和status
服务在不同的Unixes和Linuxes中。根据“低级”服务管理器的不同,服务重定向在不同的二进制文件上。 例如,在CentOS 7上,它重定向到systemctl,而在CentOS 6上,它直接调用相对/etc/init.d
脚本。另一方面,在旧版本的Ubuntu中,它会重定向到upstart。service
足够用于基本服务管理,而直接调用systemctl
则提供更大的控制选项。
此外,systemctl
从以下路径运行服务文件:/lib/systemd/
发布于 2021-01-08 13:16:04
服务最初是作为sysvinit的辅助脚本启动的,后者变成了一个包装器脚本,不管是否有sysvinit或systemd,它都能工作。
https://stackoverflow.com/questions/43537851
复制相似问题