Ubuntu upstart/Debian SysV および systemd システム用の共通の init スクリプト セットを作成しようとしています。
/etc/init.d/appname
新興企業の場合、いつでもファイルに簡単なチェックを入れることができます。
. /lib/lsb/init-functions
check_for_upstart() {
if init_is_upstart; then
echo "Upstarted detected. Use upstart service commands. Exiting." >&2
exit 1
fi
}
(または、一部のUbuntuスクリプトが行うように、より洗練された関連コマンドをアップスタートに転送することもできます)
systemd が使用されているかどうかを検出し、終了するか systemctl にリダイレクトする同様の方法はありますか? 多くの openSUSE スクリプトが systemctl にリダイレクトされていることは認識していますが、スクリプトを見てみると、これがどのように行われるのか正確にはわかりません。私はそれ/etc/rc_status
が含まれているファイルを介していると推測していますが、これはopenSUSE固有のようで、CentOSには適用されません.
最終的には、Ubuntu 14、Debian 7、CentOS/RHEL 7、および openSUSE (任意の systemd) をサポートしたいと考えています。したがって、私のsystemv initスクリプトは実際にはDebian専用であり、他のすべてのディストリビューションにメッセージとともに存在するだけです(または、標準的な方法でsystemctl / upstartにリダイレクトします)。
これを達成するための例/ベストプラクティスはありますか?