系统相关
首页 > 系统相关> > linux – 检查系统是否在BASH中使用systemd或sysvinit的简便方法?

linux – 检查系统是否在BASH中使用systemd或sysvinit的简便方法?

作者:互联网

参见英文答案 > How to determine which init system is used?                 >            Detect init system using the shell                                    17个
我正在定义我想在不同发行版中使用的常见bash文件.我需要一种方法来检查系统是否正在使用systemd或sysvinit(/etc/init.d/).我需要这个,所以我运行适当的命令来启动服务.检查这个的安全方法是什么?我目前检查是否存在systemctl命令,但实际上这是一个选项,因为可能存在systemctl命令可用的情况,但它不一定意味着实际使用了systemd吗?

以下是我当前bash脚本的摘录:

#!/bin/sh
if [ command -v systemctl >/dev/null ]
then
    systemctl service start
else
    /etc/init.d/service start
fi

解决方法:

Systemd和init有pid = 1

pidof /sbin/init && echo "sysvinit" || echo "other"

检查systemd

pidof systemd && echo "systemd" || echo "other"

标签:linux,systemd,scripting,sysvinit
来源: https://codeday.me/bug/20190808/1622766.html