微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐