service apache2 restart 和 /etc/init.d/apache2 restart 是否执行相同的操作?

service apache2 restart 和 /etc/init.d/apache2 restart 是否执行相同的操作?

两种不同的语法能完成相同的任务吗?

$ service apache2 restart

$ /etc/init.d/apache2 restart

答案1

是的。向后兼容的 /etc/init.d/ 脚本基本上运行 service myservice start/stop/retstart,而不是自己执行任何操作。

答案2

服务不过是一个shell脚本。

cat /sbin/service

在顶部您将看到它将 SERVICEDIR 设置为 /etc/init.d。

服务脚本还有一些其他选项,例如

--status-all
--full-restart

该循环遍历所有服务。但您传递给它的名称与 init.d 脚本相匹配。

答案3

是的。

确切地说:

service  runs  a  System  V  init script in as predictable environment as possible,
removing most environment variables and with current working directory set to /.

(从service(8)

答案4

/etc/init.d/从某种程度上来说,是的。实际上,如果使用while命令启动,upstart 作业将发出警告,这service始终适用于 sys v init 脚本和 upstart 作业。

相关内容