Je définis des fichiers bash communs que je souhaite utiliser dans différentes distributions. J'ai besoin d'un moyen de vérifier si le système utilise systemd ou sysvinit (/etc/init.d/). J'ai besoin de cela, donc j'exécute la commande appropriée pour démarrer le service. Quel serait le moyen sûr de vérifier cela? Je vérifie actuellement l'existence de la commande systemctl, mais est-ce vraiment une option car il pourrait y avoir le cas où la commande systemctl pourrait être disponible, mais cela ne signifierait pas nécessairement que systemd est réellement utilisé?
Voici un extrait de mon script bash actuel:
#!/bin/sh
if [ command -v systemctl >/dev/null ]
then
systemctl service start
else
/etc/init.d/service start
fi
Systemd et init ont pid = 1
pidof /sbin/init && echo "sysvinit" || echo "other"
Vérifiez systemd
pidof systemd && echo "systemd" || echo "other"