我需要了解使用init.d
脚本和service start
启动命令之间的区别。
例如
之间有什么区别 /etc/init.d/nginx start
和service nginx start
。
答案 0 :(得分:7)
他们做同样的事情,除了service
在受控环境中运行脚本。来自service(8) man page:
描述
service在可预测的环境中运行System V init脚本 尽可能删除大多数环境变量和当前 工作目录设置为
/
。环境
LANG
,TERM
传递给init脚本的唯一环境变量。
答案 1 :(得分:6)
<强>此外:强>
直接调用 /etc/init.d / * 脚本因事实而弃用,因为:
在最新的Debian / Ubuntu发行版(和派生版)上,sysvinit(默认的init系统)已被upstart或systemd取代。因此,如果使用usptart作业或systemd单元配置文件管理其中一个服务,则调用 /etc/init.d / * 将是一个 NOOP 。脚本将在没有进一步信息的情况下退出。
相反,用户必须使用service
命令来启动/停止/重启服务。 service
命令是一个包装器,它将在尽可能可预测的环境中调用正确的脚本,无论使用哪个init系统(sysinit,upstart或systemd)。