This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.
Table of Contents

8 コマンドの実行

Zabbix は、共通の機能を使用し、ユーザーパラメータ、リモートコマンド、 「nowait」フラグを除くsystem.run[]アイテム、スクリプト(警告、外部、グローバル)およびいくつかの内部コマンドを実行します。コマンド/スクリプトは、UNIXとWindows プラットフォームの両方でよく似た動きをします:

  1. Zabbix(親プロセス)が、通信のパイプを作成します。
  2. Zabbix がそのパイプを、作成される予定の子プロセスのアウトプットとして設定します。
  3. Zabbix が子プロセスを作成(コマンド/スクリプトを実行)します。
  4. (UNIXでは)新しいプロセスグループ、(Windowsでは)ジョブが、子プロセスに対して作成されます。
  5. Zabbixは、タイムアウトが発生するまで、または他方のエンドへの書き込みが発生しなくなる(すべてのハンドル/ファイルの記述子がクローズされる)まで、そのパイプから読み込みます。子プロセスは、さらにプロセスを作成することができ、それらが終了するかハンドル/ファイルの記述子をクローズする前に終了します。
  6. タイムアウトに達しなかった場合、Zabbix は最初の子プロセスが終了するかタイムアウトが発生するまで待機します。
  7. この時点で、すべてが実行され、プロセスの階層全体(すなわち、プロセスグループまたはジョブ)が終了されたとみなされます。

Zabbix は、最初の子プロセスが終了し「かつ」アウトプットのハンドル/ファイルの記述子をオープンしたままにしている他のプロセスがないときに、コマンド/スクリプトが処理を完了したとみなしますので注意してください。処理が完了した時点で、作成された「すべての」プロセスが終了します。

ユーザーパラメータリモートコマンドアラートスクリプトについて、さらに詳細を読んでください。

コマンド内のすべての二重引用符とバックスラッシュは、バックスラッシュでエスケープされ、そのコマンドは二重引用符で囲まれます。


本ページは2014/08/05時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は、英語版のZabbix2.2マニュアルを参照してください。