确定服务器是否使用 upstart 或 sysvinit 启动

确定服务器是否使用 upstart 或 sysvinit 启动

我不是一个经验丰富的 Linux 用户/管理员,但上周我购买了一个 raspberry,并在其上安装了一个基于 Debian 发行版的 Raspbmc。

我在尝试识别发行版用于服务的脚本时遇到了一些麻烦,我知道有一些根据特定运行级别(rc0.d、rc1.d 等)确定的 init.d 脚本

我必须声明我对此有点困惑。

我的问题是,当我有 upstart 的 init .conf 文件时, rc0123456.d 文件仍然有效吗?引导一次只尊重其中一个(upstart 或 sysvinit)还是​​同时尊重两者?

我如何识别正在使用哪一个?

谢谢!

答案1

在 debian 上,您将同时安装 sysv 脚本、Upstart 作业和 systemd 服务。对于 Upstart 和 systemd,如果可用,将使用作业/服务,如果没有可用的 Upstart 或 systemd 作业/服务,则将运行 sysv 脚本。

此命令返回成功意味着 Upstart 已启动:

test -x /sbin/initctl && /sbin/initctl --version | grep -q upstart || false

此命令返回成功意味着 systemd 已启动:

test -d /run/systemd/system

否则,您将处于 sysvinit 上。

答案2

为了防止流浪者:您可以使用此命令来识别正在使用哪个 init 系统: ps 1 | awk '/1/{print $5;}' 否则,您可能会将任何 init 系统误认为 sysv =)

相关内容