このページで
-#8 コマンドの実行
Zabbix は、「nowait」フラグを除くユーザーパラメータ、リモートコマンド、 system.run[]の実行と、スクリプト(警告、外部、グローバル)、いくつかの内部コマンドで、共通の機能を使用しています。コマンド/スクリプトは、UNIXとWindows プラットフォームの両方でよく似た動きをします:
- Zabbix(親プロセス)が、通信のパイプを生成
- Zabbix がそのパイプを、生成される予定の子プロセスのアウトプットとして設定
- Zabbix が子プロセスを生成(コマンド/スクリプトを実行)
- (UNIXでは)新しいプロセスグループ、(Windowsでは)ジョブが、子プロセスに対して生成される
- Zabbix が、タイムアウトが発生するまで、または誰も一方の端に書き込まなくなる(すべてのハンドル/ファイルのディスクリプタがクローズされる)まで、そのパイプから読込み。子プロセスは、さらにプロセスを生成することができ、それらが終了する、あるいはハンドル/ファイルのディスクリプタをクローズする前に終了します。
- タイムアウトに達しなかった場合、Zabbix は最初の子プロセスが終了するかタイムアウトするまで待機します。
- この時点で、すべてが実行され、プロセスの階層全体(例えば、プロセスグループまたはジョブ全体)が終了されたことが確認されます。
Zabbix は、子プロセスが終了し「かつ」アウトプットのハンドル/ファイルのディスクリプタをオープンしたままにしている他のプロセスがないときに、コマンド/スクリプトが処理を完了したことを確認することに注意してください。
<note tip>ユーザーパラメータ、リモートコマンド、警告スクリプトについて、さらに詳細はこちら。 :::
<note tip>コマンド内のすべての二重引用符とバックスラッシュは、バックスラッシュでエスケープされ、そのコマンドは二重引用符で囲まれます。 :::
本ページは2013/06/02時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は右上の「Translations of this
page」から英語版を参照してください。