要重新启动服务(例如 httpd),我应该使用 /etc/init.d httpd restart 还是 /sbin/service httpd restart ?

And*_*art 6 linux service

每当我需要在我的 RHEL VPS 上重新启动 Apache 时,我都会输入sudo /sbin/service httpd restart. 但是我注意到很多文章都建议使用sudo /etc/init.d httpd restart.

有什么区别吗?如果有,我应该什么时候使用每一个?

Ins*_*yte 16

从手册页:

service 在尽可能可预测的环境中运行 System V init 脚本,删除大多数环境变量并将当前工作目录设置为 /。

然后它调用init.d脚本。所以他们都完成了同样的事情,除了通过调用脚本来/sbin/service确保你的 shell 中的一些环境变量不会搞砸init.d脚本。


wom*_*ble 5

使用/sbin/service是好的,因为它为守护进程提供了一个全新的工作环境,而没有任何可能令人讨厌的环境变量妨碍并造成严重破坏。至少,这是在工作中要求它的基本原理;我一直在我的其他发行版机器上直接使用 init 脚本,它没有引起明显的问题,但我确信确实存在正在解决的问题/sbin/service。也许 RHEL 系统只是在默认环境中放置了更多废话。