【问题标题】:Difference between starting a command using init.d script and service start使用 init.d 脚本启动命令和服务启动之间的区别
【发布时间】:2014-04-25 22:07:23
【问题描述】:

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

例如有什么区别

/etc/init.d/nginx startservice nginx start

【问题讨论】:

    标签: linux shell command


    【解决方案1】:

    除了service 在受控环境中运行脚本之外,它们执行相同的操作。来自service(8) man page

    说明

    服务在可预测的环境中运行 System V 初始化脚本 尽可能删除大多数环境变量并使用当前 工作目录设置为/

    环境

    LANG, TERM
    传递给初始化脚本的唯一环境变量。

    【讨论】:

      【解决方案2】:

      此外:

      事实不赞成直接调用 /etc/init.d/* 脚本,因为:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-31
        • 2013-06-30
        • 1970-01-01
        • 1970-01-01
        • 2013-09-11
        • 2014-04-13
        • 2015-11-22
        • 1970-01-01
        相关资源
        最近更新 更多