Linux

檢查系統是否在 BASH 中使用 systemd 或 sysvinit 的便捷方法?

  • March 26, 2014

我正在定義我想在不同發行版中使用的常見 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"

在此處輸入圖像描述

引用自:https://unix.stackexchange.com/questions/121654