参见英文答案 > 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"
原文地址:https://codeday.me/bug/20190808/1622766.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。