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

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

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

主な革新:

  • サービスモードを追加しました ワンショット,
    この場合、サービスは正常に起動された直後に停止としてマークされます。これは、クリーニングや初期化などの他のサービスの前に XNUMX 回限りのジョブを実行する必要がある場合があります。

  • シャットダウン後にソケットを含むファイルが確実に削除されるようにしました
    羊飼い;

  • 「herd stop」コマンドは、すでに停止しているサービスに対して実行してもエラーを表示しなくなりました。
  • タスクの起動が失敗した場合、herd ユーティリティはゼロ以外の戻りコードを返すようになりました。
  • コンテナ内で実行する場合、読み込み関連のエラーは無視されます。

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

コメントを追加します