サービスが終了したか(実行中ではありませんが実行する必要があります)、どのように確認するのですか?

サービスが終了したか(実行中ではありませんが実行する必要があります)、どのように確認するのですか?

/service/...Gentooベースのシステムに監視したいサービスがあります。実行しているか終了しているかを確認できますが、svc-status実行していないが実行する必要があるかどうかはどうすればわかりますか?したがって、一部のエラーが原因で停止または終了します。可能ですか?

ユースケースは、同じサービスのインスタンスが多いが同時に実行されないことです。したがって、たとえば、4つのインスタンスを明示的に起動した場合にのみ、8つのインスタンスのうち3つが実行されている場合は、監視スクリプトを介して通知を受けたいと思います。

答え1

これは職業だと思います。監視装置

バラよりMonitのインストールと設定方法

答え2

これを達成するためにMonitを使用することができます。

実行中のサービスを自動的に確認し、サービスがない場合は起動します。 Monitはまた、あなたにこれを知らせるEメールを送ることができます。

最初に設定する必要がありますが、Monitはすべてのシステム管理者にとって優れた軽量ツールです。

Monitをインストールして構成する方法の例をいくつか紹介します。ここ

答え3

この議論された私のスナックツールセット具体的には、いくつかの概念は、daemontools ファミリーの他のメンバーにも適用されます。

Gentooの人に話したいかもしれません。彼らプロセス監督ウィキの記事残念ながら、それは時代遅れで不完全です。

人類に対する奉仕の状況

もちろん、人間が読める形式でサービスの状態を取得する作業は、またはsvstatコマンドs6-svstatを介して行われます。sv statperpstat

noshツールセットにはsvstat(別名service-status)コマンドがあります。他の daemontools スイート ツールと同様に、必要な Service Pack ディレクトリを直接指すことができます。ツールセットは、system-control statusサービスパックディレクトリ(さまざまな一般的な場所)を検索し、一般的なサービス/ターゲット名からそれを呼び出すためのシムも提供しますservice-status

noshツールセットのservice-statusコマンドは、人が読める形式で1行を印刷したり、サービスごとに人が読める形式で複数行を印刷したりできます。どちらもサービスの現在の状態を含みます。停止スタートここに行く走るまたは止める。 1行形式では、状態が有効/無効状態(サービスを最初に開始するか、起動時に終了するかを指定)と異なる場合、その行にコメントが追加されます。最新バージョンでは、注釈に注意を引くために色が使用されています。

人間が読める複数行形式には、常にサービスの明示的な有効化/無効化状態、サービスログの尾などのその他のエントリ(log/通常のディレクトリを持つ一般的なサービスがある場合main/)が含まれます。ですから人間として読んで比較すればいいのです。

しかし、これは人が読めるフォーム。実際に安定して解析するのは難しいです。これは、人間が読める出力の1行形式のみを考慮します。

プログラムサービスの現状

20世紀に最初に提案されたキューメールセキュリティ格言の1つは、プログラム間のインターフェースについて人間が読めるコンテンツを解析するのが悪い考えです。モニタリングプログラム(モニタリングスクリプトなど)を実装するには遠くより良い使用を採用機械可読相互作用。

もちろん、マシンが読めるインターフェースの1つは、サービス管理API自体です。 (daemontools-encore互換)制御/状態APIは安定しており、長年にわたりよく知られており、ファイルシステムのFIFOと一般的なファイルです。状態を取得するためにサービスファイルを直接調べるライブラリを作成でき、人々はすでにそうしていますsupervise/oksupervise/statusバラよりPeter Ruibal and Andrés J. DíazのPython監督ライブラリそしてVoxerのNode JavaScriptライブラリ、いくつかの例を見てください。

nosh ツールセットには、Microsoft INI または JSON 形式のサービス状態に対してマシンが読み取ることができる出力を明示的に生成するコマンドsvshow(service-showまたは同様の shim) も付属しています。system-control show

サーバー/データセンター監視ツールに統合

supervise/statusBernstein daemontoolsシステムは、Guenter daemontools-encoreによって拡張され、ノッシュサービス管理に使用されるさまざまな監視システムとして知られています。そのまま使用できます。

追加の便宜のために、noshツールセットにはnagios-check-serviceNagiosプラグインとして直接使用できるコマンドが付属しています。 Nagiosプラグインプロトコルを採用し、適切な終了状態を取り、適切なコンテンツをstdout / errorに書き込むので/etc/nagios/nrpe.d/

追加読書

  • ジョナサンデボインポラード(2015)。デーモンツールシリーズ。一般的な答え。
  • 少し古いかもしれません。スナックガイド:
    • ジョナサン・デ・ボーインポラード。service-statusスナックガイド
    • ジョナサン・デ・ボーインポラード。service-showスナックガイド
    • ジョナサン・デ・ボーインポラード。 「nagios-check-service。」system-controlスナックガイド
  • 最新スナックガイド次のように利用可能Debian/Ubuntu パッケージそしてFreeBSD/PC-BSD/DragonFlyBSD/&c。パック、次の方法でインターネットに接続せずにコンピュータからアクセスできます。
    • man service-status
    • man service-show
    • man nagios-check-service
    • xdg-open /usr/local/share/doc/nosh/service-status.html
    • xdg-open /usr/local/share/doc/nosh/service-show.html
    • xdg-open /usr/local/share/doc/nosh/system-control.html
  • ブルースガンター。 svstat。 daemontools-encore マニュアル。 §8。
  • ゲレットパフ。 sv。ランブック。 §8。
  • ウェイン・マーシャル(2013)。perpstat。囚人のハンドブック。 §8。
  • ローランベルコ。 s6-svstat。 s6 マニュアル。

答え4

systemdを実行している場合は、次を使用してすべてのサービスの状態を照会できます。

systemctl list-units

関連情報