对于版本 14 来说,是;对于版本 15 来说,不是。

对于版本 14 来说,是;对于版本 15 来说,不是。

我正在阅读《Ubuntu Server Book 第二版》。其中有如下内容:

目前,Upstart 确实取代了 init 和 /etc/inittab 文件的功能,并管理对运行级别、系统启动和关闭、控制台 tty 的更改,并且越来越多的核心功能正在移植到 Upstart 脚本中

我的看法是,upstart 负责在运行级别上启动脚本。因此,如果输入了运行级别 2,则 Upstart 而不是 System V 会启动脚本,然后启动可执行程序。

因此,我从存储库安装了 postgresql。而且,当系统启动时,postgres 守护进程确实在后台运行。显然,如果 System V 没有执行此操作,那么一定是 Upstart 执行了此任务。但是,当我转到 /etc/init(所有 upstart 脚本所在的位置)时,任何地方都没有对 postgresql 的引用。但是,当我转到 /etc/rc1.d(运行级别 1 脚本所在的位置)时,我确实找到了一个 postgresql 脚本:

$ ls -l | grep postgresql
lrwxrwxrwx 1 root root  20 Jun  1 11:10 K21postgresql -> ../init.d/postgresql

那么为什么postgresql没有upstart脚本呢?如果没有upstart脚本,postgresql如何启动呢?

答案1

对于版本 14 来说,是;对于版本 15 来说,不是。

在 Ubuntu Linux 版本 14 上:是的,upstart 确实处理了所有这些问题。您需要阅读食谱讨论了它如何处理仅随旧 System 5rc脚本提供的程序,以及 upstart “运行级别”事件的手册页。有一整套机制用于调用旧 System 5rc程序。就 upstart 本身而言,这只是另一项工作。

在 Ubuntu Linux 版本 15 上;不,upstart 不再参与。systemd 正在处理所有这些。systemd 具有针对旧 System 5rc脚本的机制。但是,/etc/init.d/postgresql您正在查看的文件与版本 15 无关。PostgreSQL 在版本 15 中附带两个 systemd 服务单元文件,并且。因此,System 5 的内容被完全忽略。/lib/systemd/system/[email protected]/lib/systemd/system/postgresql.servicerc

进一步阅读

相关内容