Guixによって開発されたサービスマネージャー、GNU Shepherd

最後のメジャーバージョンの形成からXNUMX年後、 彼がの打ち上げを発表したときに発表されました サービスマネージャの新しいバージョン GNUシェパード0.9 (以前はdmdとして知られていました) GNUGuixディストリビューションの開発者によって開発されました システム依存関係を意識したSysV-init初期化の代替として。

シェパード サービスとして非同期的にユーザースペース機能を提供します、シェパードでは、ジェネリック関数とオブジェクトデータ型であり、シェパードが定義された方法で基本オペレーティングシステムを拡張するためにエクスポートされます。 systemdとは異なり、ユーザースペース監視プロセスはそのユーザーとして実行されます。

シェパードについて

ユーザースペースの初期化のシェパードモデルの中核となるのは、拡張の概念です。これは、サービスが他のサービスをオーバーレイするように設計され、必要に応じてより複雑な、または特殊な動作でそれらを拡張する構成可能性の形式です。 これは、多くの最新のブートシステムに見られるインスタンス化ベースの依存関係を表しています。 システムをモジュール化するだけでなく、サービスが相互に可変的に相互作用できるようにします 任意にサービスします。

シェパード いわゆる仮想サービスも提供します これにより、システムのメール転送エージェント(MTA)をインスタンス化するものなど、関連するサービスオブジェクトのクラスで動的ディスパッチが可能になります。

Shepherdデーモンによって管理されるシステムは、そのユーザースペースを有向非巡回グラフとして表すことができ、「システムサービス」(初期の起動フェーズと起動フェーズを担当)をルートとして、後続のすべての初期化サービスをシステムサービスの機能の拡張として表すことができます。 、他のサービスを介して直接または一時的に。

Guileスキームで記述および構成されているため、 GNUシェパードは高度にプログラム可能になるように設計されています システム管理者によるものですが、非特権デーモンおよびサービスのユーザーごとのプロファイルを管理するためにも使用できます。

サービスと設定はSchemeコードとして一律に保存されます オブジェクト指向であり、サービスのコアセットは基本的なGuixシステムで提供されますが、任意の新しいサービスを柔軟に宣言でき、GuileのオブジェクトシステムであるGOOPSを介して、既存のサービスをユーザーの裁量で再定義できます。インスタンス化に関する特定の方法。

GNU Shepherdは、もともとGNU Hurdで動作するように設計され、後にGuixシステムに採用されました。

GNUShepherd0.9の主な新機能

提示されるこの新しいバージョンでは、次のことが強調されています。 一時的なサービスの概念が実装されています (一時的)。プロセスの終了または「停止」メソッド呼び出しのために終了後に自動的に切断されます。これは、終了後に再開できない合成サービスに必要な場合があります。

目立つもうXNUMXつの変更点は ""#:log-file"パラメーターのないサービスの場合, syslogへの出力が提供されます また、「#:log-file」パラメーターを使用するサービスの場合、ログは、$XDG_DATA_DIRディレクトリーに保管されている非特権Shepherdプロセスのログの時刻を示す別のファイルに書き込まれます。

さらに、inetdと同様のサービスを作成するために「make-inetd-constructor」プロシージャが追加され、ネットワークアクティビティ(スタイルsystemdソケット)でアクティブ化されるサービスを作成するために「make-systemd-constructor」プロシージャが追加されたことは注目に値します。アクティベーション)。

その他の変更点 この新しいバージョンから際立っている:

  • バックグラウンドサービスを開始する手順を追加しました。
  • 「make-forkexec-constructor」プロシージャに「:supplementary-groups」、「#:create-session」、および「#:resource-limits」パラメータを追加しました。
  • PIDファイルの待機中のロックフリー動作を保証します。
  • Guile2.0でのコンパイルのサポートを削除しました。 Guileバージョン3.0.5-3.0.7を使用する際の問題を修正しました。
  • ファイバーライブラリ1.1.0以降が機能する必要があります。
  • 改善されたドキュメントと例
  • シェパードはGuile2.0で構築できなくなりました
  • Guile3.0コンパイラのバグを修正しました。[5-7]
  • 更新された翻訳

最後に あなたがそれについてもっと知りたいのなら または、この新しいバージョンを入手したい場合は、詳細、ドキュメントを参照して、からダウンロードできます。 次のリンク。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。