Linux
檢查系統是否在 BASH 中使用 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
Systemd 和 init 有
pid = 1
pidof /sbin/init && echo "sysvinit" || echo "other"
檢查系統
pidof systemd && echo "systemd" || echo "other"