GNU Shepherd 0.9.2 init システムのリリース

サービス マネージャー GNU Shepherd 0.9.2 (旧 dmd) が公開されました。これは、依存関係をサポートする SysV-init 初期化システムの代替として、GNU Guix System ディストリビューションの開発者によって開発されています。 Shepherd コントロール デーモンとユーティリティは、Guile 言語 (Scheme 言語の実装の XNUMX つ) で書かれています。この言語は、サービスを起動するための設定とパラメータを定義するためにも使用されます。 Shepherd はすでに GuixSD GNU/Linux ディストリビューションで使用されており、GNU/Hurd での使用も目的としていますが、Guile 言語が利用可能な POSIX 準拠の OS 上で実行できます。

Shepherd は、サービス間の関係を考慮して、選択したサービスが依存するサービスを動的に識別して開始することによって、サービスの開始と停止の作業を実行します。 Shepherd は、サービス間の競合の検出と、サービスの同時実行の防止もサポートしています。 プロジェクトは、メインの初期化システム (PID 1 の init) として、また、権限を使用して実行して個々のユーザーのバックグラウンド プロセス (たとえば、tor、privoxy、mcron などを実行するため) を管理するための別の形式で使用できます。これらのユーザーの。

変更点としては次のとおりです。

  • Shepherd で使用されるファイル記述子は、exec コマンドの実行時にすぐに閉じられるのではなく、O_CLOEXEC (close-on-exec) フラグでマークされるようになり、exec コマンドによって間接的に開始されたサービスにハンドルを渡すことができるようになりました。
  • クライアント接続は非ブロッキング方式で処理されるようになり、不完全なコマンドを送信したときにシェパードがハングするのを防ぎます。
  • 「log-file」設定で定義されたログ ファイル用のディレクトリが存在しない場合は、そのディレクトリが作成されるようにします。

出所: オープンネット.ru

コメントを追加します