ZSYSTEMコマンドは、現在のプロセスのチャイルド プロセスを作成します。
ZSYSTEMコマンドのフォーマットは:
ZSY[STEM][:tvexpr] [expr][,...]]
オプションでコマンド直後に続く真理値の式は、GT.Mがコマンドを実行するかどうかをコントロールする後置コマンドです。
オプションの式は、シェルに渡されるコマンドを指定し、コマンドを処理した後、シェルはGT.M.に制御を返します。オプションの式(expression)の最大長は4Kバイトです。
間接指定演算子と1つ以上のZSYSTEMの引数リストに評価される原子式(expression atom)は、ZSYSTEMのための正当な引数を構成します。
ZSYSTEMコマンドは、新しいプロセスを作成し、実行のためにシェルに引数を渡します。新しいプロセスは、SHELL環境変数で指定されたシェルを使用して開始するプロセスと同じディレクトリで実行するか、または、もし定義されていない場合、デフォルトのシェル(通常はBourne)です。新しいプロセスは、開始プロセスとして、環境変数や入力/出力デバイスのような同じオペレーティングシステムの環境を持ちます。実行を継続する前に新しいプロセスが完了するまで、開始プロセスは一時停止します。 GT.Mに制御が戻った後に、$ZSYSTEMには fork されたプロセスのリターンステータスを含みます。
null 引数でZSYSTEMは、標準入力と出力デバイスを持つシェルを作成します。シェルが終了する時、制御はGT.M.に返されます。対話的なプロセスの場合、stdinとstdoutの両方は、exit コマンドで提供されるまで、シェルが入力を求めるプロンプトで一般的にユーザターミナルです。引数なしZSYSTEMは、同じ行のコマンドに続く前に、2つのスペースが続くことが必要です。そして、単一のヌル文字列の引数を持つZSYSTEMと同等です。
もしZSYSTEMコマンドが複数の引数を持つ場合、1回ごと引数ごとに新しいプロセスを開始します。 ZSYSTEMは、次のプロセスを開始する前に、完了する1つのプロセスを待ちます。
TPトランザクション内でZSYSTEMコマンドは、アイソレーションの特性に反します。したがって、GT.Mがトランザクション処理を実装する方法のために、トランザクション内のZSYSTEMは、再起動の無限数を("ライブロック:live lock ")を低下させる可能性があります。
間接指定演算子と1つ以上のZSYSTEMの引数リストに評価される原子式(expression atom)は、ZSYSTEMのための正当な引数を構成します。
注意 | |
---|---|
PIPEデバイスは、タイムアウトが発生し、制御された同時処理が可能で、より多くの情報を簡単に返すことができ、複数の操作が必要な場所で効率が向上するため、ZSYSTEMコマンドの代替手段として頻繁に使用されます。 |