我不是一个经验丰富的 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 =)