さまざまなディストリビューションで使用したい共通の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"