使用init.d脚本启动命令和服务启动之间的区别

时间:2014-03-19 14:52:13

标签: linux shell command

我需要了解使用init.d脚本和service start启动命令之间的区别。

例如

之间有什么区别

/etc/init.d/nginx startservice nginx start

2 个答案:

答案 0 :(得分:7)

他们做同样的事情,除了service在受控环境中运行脚本。来自service(8) man page

  

描述

     

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

     

环境

     

LANGTERM
  传递给init脚本的唯一环境变量。

答案 1 :(得分:6)

<强>此外:

直接调用 /etc/init.d / * 脚本因事实而弃用,因为:

在最新的Debian / Ubuntu发行版(和派生版)上,sysvinit(默认的init系统)已被upstart或systemd取代。因此,如果使用usptart作业或systemd单元配置文件管理其中一个服务,则调用 /etc/init.d / * 将是一个 NOOP 。脚本将在没有进一步信息的情况下退出。

相反,用户必须使用service命令来启动/停止/重启服务。 service命令是一个包装器,它将在尽可能可预测的环境中调用正确的脚本,无论使用哪个init系统(sysinit,upstart或systemd)。