服务初始化脚本:upstart?

服务初始化脚本:upstart?

在哪里可以阅读有关 ubuntu 中 upstart 的一些简要信息?
我找到了“Upstart 简介、使用手册和最佳实践”,但它太大了。

我如何添加自己的服务?Ubuntu 中的和
有什么区别?Ubuntu将来 会转向初始化吗?命令 是否 已弃用? 为什么中的某些文件包含这些行:/etc/init/etc/init.d
systemd
service
/etc/init.d

# Don't run if we are running upstart
if init_is_upstart; then
    exit 1
fi

Ubuntu 似乎有 2 个不同的初始化系统。我说得对吗?

答案1

在哪里可以阅读有关 ubuntu 中的 upstart 的一些简要信息?

Upstart 入门页面可能会有用(直接跳到写作作业部分)。 或者DigitalOcean 教程

我如何添加自己的服务?

基本内容:在 中
创建一个.conf文件/etc/init。它应该包含:

  • 一个有效的start on节(如果它是一项服务而不是一项短期任务,则为有效的stop on(节)
  • 一个exec行或者script--end script块与shell命令一起启动实际的命令。

例如,查看tty5服务:

$ cat /etc/init/tty5.conf 
# tty5 - getty
#
# This service maintains a getty on tty5 from the point the system is
# started until it is shut down again.

start on runlevel [23] and not-container

stop on runlevel [!23]

respawn
exec /sbin/getty -8 38400 tty5

Ubuntu 中的 /etc/init 和 /etc/init.d 有什么区别?

前者用于 Upstart 服务配置文件,后者用于较旧的 sysvinit 脚本。

Ubuntu 将来会转向 systemd 初始化吗?

是的。

服务命令是否已被弃用?

目前还没有。service涵盖 Upstart 和 sysvinit 服务。我不确定它在 15.04 中会以什么形式出现。

为什么 /etc/init.d 中的某些文件包含这些行:...
Ubuntu 似乎有 2 个不同的初始化系统。我说得对吗?

不,Ubuntu 只有一个初始化系统:Upstart。Upstart 可以加载和运行 sysvinit 服务。一些软件包的创建者同时提供了 Upstart 和 sysvinit 服务文件,因为这些软件包可能在没有 Upstart 的系统(例如旧版本的 Debian)中使用。这样,软件包创建者就不必为两个初始化系统提供两个软件包。如果 Upstart 服务正在运行,则 sysvinit 服务不应该运行,这就是为什么要进行该检查。

相关内容