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

最後の重要なリリースの作成から 0.9 年後、サービス マネージャー GNU Shepherd XNUMX (旧称 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 などを実行するため) を管理するための別の形式で使用できます。これらのユーザーの。

主な革新:

  • 一時サービス (一時的) の概念が実装されており、プロセスの終了または「stop」メソッドの呼び出しにより完了後に自動的に無効になります。これは、シャットダウン後に再起動できない合成サービスに必要になる場合があります。
  • inetd のようなサービスを作成するために、「make-inetd-constructor」プロシージャが追加されました。
  • ネットワーク アクティビティ中にアクティブ化されるサービス (systemd ソケット アクティブ化スタイル) を作成するために、「make-systemd-constructor」プロシージャが追加されました。
  • バックグラウンドでサービスを開始する手順「start-in-the-background」を追加しました。
  • 「make-forkexec-constructor」ルーチンにパラメータ「:supplementary-groups」、「#:create-session」、および「#:resource-limits」を追加しました。
  • PIDファイルの待機中にブロックせずに動作できるようにしました。
  • 「#:log-file」パラメータのないサービスの場合は、syslog への出力が提供され、#:log-file パラメータのあるサービスの場合、ログは記録時刻を示す別のファイルに書き込まれます。 非特権シェパードプロセスからのログは、$XDG_DATA_DIR ディレクトリに保存されます。
  • Guile 2.0 でのビルドのサポートは終了しました。 Guile バージョン 3.0.5 ~ 3.0.7 を使用する際の問題は解決されました。
  • 動作するには、Fibers ライブラリ 1.1.0 以降が必要です。

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

コメントを追加します