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