pho*_*ops 53 linux scripting systemd sysvinit
我正在定义要在不同发行版中使用的通用 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
Run Code Online (Sandbox Code Playgroud)
小智 52
Systemd 和 init 有 pid = 1
pidof /sbin/init && echo "sysvinit" || echo "other"
Run Code Online (Sandbox Code Playgroud)
检查 systemd
pidof systemd && echo "systemd" || echo "other"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
90572 次 |
最近记录: |