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

use*_*329 10 linux shell command

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

例如,有什么区别

/etc/init.d/nginx startservice nginx start.

Joh*_*ica 8

除了service在受控环境中运行脚本之外,它们执行相同的操作.从service(8)手册页:

描述

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

环境

LANG,TERM
        传递给init脚本的唯一环境变量.


Nux*_*win 7

此外:

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

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

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