BSD界隈四方山話
第39回 init(8)とrc(8)に替わる起動および制御機能の模索
init(8)とrc(8)に替わる仕組みの模索
*BSDはシステムの起動をinit(8)からのシェルスクリプト,
init(8)+rc(8)からこうした汎用フレームワークへ移行している理由はいくつかありますが,
- サービスの並列起動などによるシステム起動の高速化
- サービスを制御するための汎用的なインターフェースの提供
- サービスのモニタリングと自動スタートの実現
- サービスのモニタリングと自動アイドルの実現
- サービスのモニタリングと自動リスタート機能による高可用性の実現
- root権限でのサービス起動の削減とセキュリティの向上
利点だけ見ていると良さそうですが,
しかしながら,
- NextBSD launchd
- relaunchd
- nosh
次にそれぞれの特徴を簡単にまとめておきます。
NextBSD launchd
FreeBSDをベースとしながら,
このNextBSDの開発を率いているのはiXsystemsのJordan K. Hubbard氏です。彼は長らくAppleの技術畑で業務に従事してきました。Jordan K. Hubbard氏の取り組みはAppleがMac OS Xで取り組んだシステム管理向けの開発をFreeBSDに持ち込むといった取り組みに見えます。
Mac OS Xで利用されているlaunchdと同様の機能を提供するデーモンおよびエージェントマネージャの実装を目指すほか,
relaunchd
NextBSD launchdのようにlaunchdと同じ機能の実装を目指しているものの,
- Jail内部におけるサービス制御のサポート
- ホストからJailへのソケットディスクリプタの移行
- 設定済みのCapsicum(4)サンドボックスにおけるプログラムの起動
- JSON風設定ファイルフォーマットUCLに対応
relaunchdのソースコードはすでにPorts Collectionに追加されています。クラッシュしたサービスの自動再起動機能,
relaunchdはFreeBSDを主なターゲットとして開発されていますが,
nosh
同様の取り組みで開発が活発なプロジェクトにnoshがあります。NextBSD launchdとrelaunchdがMac OS Xのlaunchdをモデルとしているのと比べ,
すでにかなり開発が進んでおり,
今のところLinux systemdの互換システムを開発しようという取り組みはそれほど積極的ではないように見えます。systemdがまだ開発段階であること,
現在は研究開発の段階
FreeBSDプロジェクトはどの実装をinit(8)+rc(8)の代替とするのかまだ決定していません。init(8)+rc(8)から移行するかどうかも決めていません。複数の仕組みを切り替えて使用できるようなフレームワークを導入するかもしれませんし,
しかし,
バックナンバー
BSD界隈四方山話
- 第39回 init(8)とrc(8)に替わる起動および制御機能の模索
- 第38回 FreeBSD 11.0,10.3リリース予定とほかのサポート期限
- 第37回 FreeBSDオートマウントデーモンで自動マウント
- 第36回 OpenSSHにセキュリティ脆弱性
- 第35回 OpenBSD pledge(2)システムコール,5.9で正式登場
- 第34回 FreeBSD ZFS起動パーティション選択メニュー登場
- 第33回 FreeBSDセキュリティと脆弱性とアップデート
- 第32回 SwiftをFreeBSDでビルドしてみよう
- 第31回 FreeBSDのソースコードを調べる方法
- 第30回 OpenBSDハイパーバイザvmm(4),開発ブランチへマージ