OpenVMS
DCL ディクショナリ


前へ 次へ 目次 索引



SPAWN

現在のプロセスのサブプロセスを生成します。現在のプロセス・コンテキストの一部が,サブプロセスにコピーされます。

サブプロセスを作成するためには, RESOURCE_WAIT 状態でなければなりません。また,TMPMBX(一時的メールボックス)または PRMMBX(パーマネント・メールボックス)特権が必要です。 SPAWN コマンドは,ターミナル属性を操作しません。ターミナルがメールボックスに関係付けられている場合は, SPAWN および ATTACH コマンドは使用できません。


形式

SPAWN [コマンド文字列]


パラメータ

コマンド文字列

作成されたサブプロセスのコンテキストで実行する, 132 文字以内のコマンド文字列を指定します。コマンドが終了するとサブプロセスは終了し,制御は親プロセスに戻ります。 /INPUT 修飾子とコマンド文字列の両方を指定した場合は,指定したコマンド文字列が実行されたあと, /INPUT 修飾子の指定からコマンドが入力されます。

説明

SPAWN コマンドは,現在のプロセスから次の属性をコピーして,現在のプロセスのサブプロセスを作成します。

プロセスの現在のコマンド・テーブルなどの一部の属性は,コピーされないことに注意してください。

サブプロセスの作成時には,オープンされたプロセス・パーマネント・ファイル,およびイメージまたはプロシージャは,親プロセスからコピーされません。サブプロセスは,コマンド・レベル 0 (現在のプロンプトを持つ DCL レベル) に設定されます。

/PROCESS 修飾子を指定しない場合は,このサブプロセスの名前は,親プロセスと同じ基本名および一意な番号から構成されます。たとえば,親プロセス名が SKONETSKI の場合は,サブプロセス名は,SKONETSKI_1,SKONETSKI_2 などになります。

コンテキストが別にコピーされるので,親プロセスの LOGIN.COM ファイルはサブプロセスに対しては実行されません。そのため,サブプロセス初期化が速くなります。 /WAIT 修飾子が有効な場合は,サブプロセスが終了する,または ATTACH コマンド経由で制御が親プロセスに戻るまで,親プロセスはハイバネート状態になります。

次の場合は,複数のプロセスが同時に同じ入力ストリームまたは出力ストリームを使用しようとします。

サブプロセスを終了し親プロセスに戻るには, LOGOUT コマンドを使用する必要があります。ATTACH コマンドを使用すると,親プロセスを含めたサブプロセス階層構造の別のプロセスに,端末の制御を移すことができます。SHOW PROCESS/SUBPROCESSES コマンドは,サブプロセス階層構造内のプロセスを表示し,現在のプロセスをポイントします。

注意

サブプロセスの階層構造は SPAWN コマンドを使用して設定できるため,階層構造内のプロセスを終了させる場合は注意してください。プロセスを終了させると,階層構造内のそのポイントより下にあるすべてのサブプロセスが自動的に終了します。

SPAWN コマンドに使用する修飾子は,コマンド動詞の直後に指定しなければなりません。コマンド文字列パラメータは,最後の修飾子の後から始まり,コマンド行の最後まで続きます。


修飾子

/CARRIAGE_CONTROL

/NOCARRIAGE_CONTROL

サブプロセスのプロンプト文字列の前で,改行するかどうかを指定します。省略時の設定では,SPAWN コマンドは親プロセスの現在の設定をコピーします。

/CLI=CLI ファイル指定

/NOCLI

サブプロセスが使用する,代替のコマンド言語インタプリタ(CLI)の名前を指定します。省略時の CLI は,親プロセスの CLI と同じです (SYSUAF に定義されています)。 /CLI 修飾子を指定した場合には,親プロセスの属性がサブプロセスにコピーされます。

指定する CLI は SYS$SYSTEM に存在しなければならず,ファイル・タイプは .EXE でなければなりません。

/INPUT=ファイル指定

作成されたサブプロセスで実行される, 1 つまたは複数の DCL コマンドを含んだ入力ファイルを指定します。省略時のファイル・タイプは COM です。ファイル指定に,アスタリスク (*) およびパーセント記号 (%) のワイルドカード文字は使用できません。入力ファイルの処理が終了すると,サブプロセスは終了します。コマンド文字列と /INPUT 修飾子の両方が指定された場合には,コマンド文字列が処理されたあとで, /INPUT 修飾子で得られるコマンドが処理されます。どちらも指定されない場合は,SYS$INPUT が使用されます ( この場合 SPAWN/NOWAIT コマンドは,親プロセスで実行中のイメージを終了させるために押した Ctrl/Y でも終了します )。

/INPUT 修飾子に,レコード単位で処理されないプロセス・パーマネント・ファイル (NRO PPF) は指定できません。 /INPUT 修飾子の値として,このようなファイルを指定した場合には,エラー・メッセージが表示されます。

暗黙の入力としてNRO PPF が使用される場合 ( つまり,/INPUT 修飾子が指定されておらず,SYS$INPUT が NRO PPF の場合 ) には, SPAWN コマンドは正常終了となります。次の表を参照してください。

プロセス・タイプ SYS$INPUT 暗黙の入力
会話型モード NRO PPF SYS$COMMAND
非会話モード NRO PPF 空装置
任意 任意 SYS$INPUT

SYS$INPUT がターミナルの場合には,対応するターミナル・メールボックスを持つことはできません。

/KEYPAD (省略時の設定)

/NOKEYPAD

キーパッド・キー定義と現在のキーパッド状態を,親プロセスからサブプロセスにコピーするかどうかを指定します。省略時の設定では,DEFINE/KEY コマンド,または SET KEY コマンドによってキー定義や状態が設定されていると,これらの設定はサブプロセスにコピーされます。キー設定をコピーしないようにするには,/NOKEYPAD 修飾子を使用します。

/LOG (省略時の設定)

/NOLOG

プロセス間での制御の受け渡しを示すメッセージとともに,割り当てられたサブプロセス名を表示するかどうか指定します。

/LOGICAL_NAMES (省略時の設定)

/NOLOGICAL_NAMES

システムが,プロセス論理名と論理名テーブルをサブプロセスにコピーするかどうかを指定します。省略時の設定では,すべてのプロセス論理名とプロセス論理名テーブルが,サブプロセスにコピーされます。この場合,CONFINE 属性が指定されているものと,エグゼクティブ・モードまたはカーネル・モードで作成されたものを除きます。

/NOTIFY

/NONOTIFY (省略時の設定)

サブプロセスが,正常終了または異常終了したことを示すメッセージを,ユーザがログインしているターミナルに表示するかどうか指定します。この修飾子は,/NOWAIT 修飾子を指定している場合のみ有効です。また,SPAWN コマンドが非会話型モードのプロセス内で実行される場合には, /NOTIFY 修飾子を指定できません。

/NOTIFY 修飾子を指定したことで表示されるメッセージは, DCL メッセージであると解釈されます。したがって,SET BROADCAST=NODCL が有効な場合には,このような通知メッセージはすべて出力されません。

/OUTPUT=ファイル指定

SPAWN 操作からの出力を,指定されたファイルに書き込みます。ファイル指定にアスタリスク (*) およびパーセント記号 (%) のワイルドカード文字は使用できません。 (/NOWAIT 修飾子を使用している場合には, /OUTPUT 修飾子に対して SYS$COMMAND を指定してはなりません。親プロセスとサブプロセスの両方の出力が,同時にターミナル上に表示されます。)

注意

/OUTPUT 修飾子のファイル指定引数に,既存のファイルのバージョン番号を指定すると,既存のファイルは新しい出力に置き換えられます。

/OUTPUT 修飾子に,レコード単位で処理されないプロセス・パーマネント・ファイル (NRO PPF) は指定できません。 /OUTPUT 修飾子の値としてこのようなファイルを指定した場合には,エラー・メッセージが表示されます。

暗黙の出力として NRO PPF が使用された場合には, SPAWN コマンドは正常終了します。次の表を参照してください。

プロセス・タイプ SYS$OUTPUT 暗黙の出力
任意のタイプ NRO PPF 親プロセスに対して,メールボックスが送信するレコーは,現在の SYS$OUTPUT 装置に書き込まれる。
任意のタイプ 他の任意のファイル SYS$OUTPUT

/OUTPUT 修飾子を省略した場合には,出力は現在の SYS$OUTPUT 装置に送られます。

/PRIVILEGES={CURRENT|AUTHORIZED}

親プロセスの現在の特権,または認められている特権を,認められている特権として継承するかどうかを指定します。省略時の設定は /PRIVILEGES=CURRENT です。/PRIVILEGES=AUTHORIZED を指定すると,親プロセスで認められているすべての特権が継承されます。

/PROCESS=サブプロセス名

作成されるサブプロセスの名前を指定します。/PROCESS 修飾子を省略した場合には,親プロセスの名前と一意な番号から構成される,一意なプロセス名が与えられます。

省略時のサブプロセス名の形式は,ユーザ名_n です。既存のプロセス名を指定した場合には,エラー・メッセージが表示されます。 /LOG 修飾子を指定している場合には,サブプロセスに割り当てられた名前が表示されます。

注意

OpenVMS バージョン 7.3-1(Alpha のみ ) から,省略時に生成されるサブプロセスのプロセス名が変わりました。次の一意な番号を順に探す代りに,乱数が選ばれてユーザ名に付加されます。したがって,ユーザ SYSTEM から最初にスポーンされたプロセスは, SYSTEM_154,SYSTEM_42,SYSTEM_87 などになります。

OpenVMS バージョン 7.3-1 より前のバージョンでは,プロセス名が指定されなかった場合,システムはユーザ名に _n を付加することによって名前を生成しました。 n は,システム内の現在のプロセスとして次に使用可能な重複しない整数でした。たとえば,ユーザ SYSTEM から最初にスポーンされたプロセスは SYSTEM_1 になり, 2 番目は SYSTEM_2 になります。抜けた番号は,次に使用可能な番号としてすぐに使用されていました。

一部のアプリケーションは,以前のサブプロセス名の割り当て方法に依存しているかもしれません。 DCL_CTLFLAGS システム・パラメータを使用して,必要に応じてシステムを構成することができます。詳細は,『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』を参照してください。

/PROMPT[=文字列]

DCL がサブプロセスで使用するプロンプト文字列を指定します。省略時の設定では,親プロセスの現在のプロンプト文字列です。

文字列には,複数の文字を指定できます。文字列の中では,すべての ASCII 文字を使用できます。文字列にスペースや特殊文字,小文字が含まれる場合は,文字列を引用符 (" ") で囲まなければなりません。文字列を引用符で囲まなかった場合には,文字は自動的に大文字に変換され,先行するスペースと後続のスペースは削除されます。

/PROMPT 修飾子に文字列を指定しないと, DCL の省略時のプロンプト文字列であるドル記号 ($) が使用されます。

/SYMBOLS (省略時の設定)

/NOSYMBOLS

システムが,DCL のグローバル・シンボルとローカル・シンボルをサブプロセスに渡すかどうかを指定します。ただし,$RESTART,$SEVERITY,および $STATUS というシンボルは,サブプロセスに渡されることはありません。

/TABLE=コマンド・テーブル

サブプロセスが使用する,代替コマンド・テーブルの名前を指定します。

/TRUSTED

/NOTRUSTED

SPAWN コマンドの入力が,トラステッド・コマンド・プロシージャから行われることを指定します。キャプティブ・アカウントからは SPAWN コマンドは使用できません。 /TRUSTED 修飾子は,トラステッド・コマンド・プロシージャであるキャプティブ・コマンド・プロシージャから, SPAWN 操作を実行する方法を提供します。詳細は,『OpenVMS Guide to System Security』を参照してください。

/WAIT (省略時の設定)

/NOWAIT

親プロセスへのコマンド入力を, SPAWN で作成されたサブプロセスの終了まで待つかどうかを制御します。 /NOWAIT 修飾子を指定した場合には,指定されたサブプロセスが実行されている間も,新しいコマンドを入力できます。親プロセスとサブプロセスからの出力が,同時にターミナルに表示されることがないように, /OUTPUT 修飾子と /NOWAIT 修飾子を使用します。

/NOWAIT 修飾子を指定した場合は,サブプロセスの入力も出力も親プロセスと共用されます。入力装置がターミナルの場合には,Ctrl/T や Ctrl/Y などの制御文字は,入力装置を共用するすべてのサブプロセスに影響を与えます。たとえば,Ctrl/Y は,このようなすべてのサブプロセスに割り込みをかけます。

この問題を回避するためには,/INPUT=NL: を指定します。


#1

$ RUN MYPROG
      .
      .
      .
 
$ [Ctrl/Y]
$ SPAWN MAIL
%DCL-S-SPAWNED, process SKONETSKI_1 spawned
%DCL-S-ATTACHED, terminal now attached to process SKONETSKI_1
MAIL> READ
   .
   .
   .
MAIL> EXIT
%DCL-S-RETURNED, control returned to process SKONETSKI
$ CONTINUE
 

この例の SPAWN コマンドは,現在実行中のプログラムを終了させることなく, OpenVMS の Mail ユーティリティ( MAIL )を起動させています。 MAIL の終了後,制御は親プロセスに戻ります。


START/CPU

1 つまたは複数の指定された副プロセッサ ( および対応するすべてのベクタ・プロセッサ ) を起動します。/CPU修飾子は必須です。

OpenVMSマルチプロセッシング・システムにだけ適用できます。 CMKRNL(カーネルのモード変更)特権が必要です。


形式

START/CPU [cpu-id[,...]]


パラメータ

cpu-id[,...]

OpenVMS マルチプロセッシング・システムでのプロセッサの ID を表す値 (10 進数 ) を指定します。VAX 6000 システムまたは Alpha 7000 システムでは,プロセッサのバックプレーンにあるスロット番号が CPU IDです。 CPU ID と /ALL 修飾子のいずれも指定しない場合,START/CPU コマンドは,使用可能なプロセッサを 1 つ選択して,マルチプロセッシング・システムに追加します。

説明

START/CPU コマンドは, OpenVMS マルチプロセッシング・システムに含まれる副プロセッサを起動します。

START/CPU コマンドを実行できるのは, SHOW CPU コマンドで状態が STOPPED または TIMOUT と表示されるプロセッサだけです。それ以外のプロセッサに対して START/CPU コマンドを実行しても無効です。


修飾子

/ALL

システム内で使用可能なプロセッサをすべて選択して,マルチプロセッシング・システムに追加します。

/DEFAULT_CAPABILITIES

特定の CPU に対して以前に有効だった ( ユーザおよびシステムでの ) 機能を削除し,グローバル初期化変数 SCH$GL_DEFAULT_CPU_CAP の値に再度初期化します。

通常,CPU をシャットダウンして ( 再ブートではなく ) 再起動しても,ダウンタイムはユーザにもわかり,ユーザの機能は有効です。 CPU ユーザ機能ビットは, CPU の最初のブート時に SCH$GL_DEFAULT_CPU_CAP で初期化されます。ただしシステム機能ビットは, SCH$GL_DEFAULT_CPU_CAP から省略時の設定に再度初期化されます。

しかし CPU は,既知の整合性のある状態に戻さなければならないことがあります。 /DEFAULT_CAPABILITIES 修飾子は, CPU の初期ブートストラップと同様の処理を行います。

/POWER[=ON] (Alpha のみ)

CPU をアクティブ・セットに渡すより前に,CPU の電源を入れます。

AlphaServer GS シリーズ・システム上でのみサポートされます。


#1

$ START/CPU

この例で START/CPU コマンドは,現在アクティブでないプロセッサのセットから,使用可能なプロセッサを 1 つ選択します。選択されたプロセッサの初期化が終了すると,システムのアクティブなプロセッサのセットの一部となり,プロセスのスケジューリングや実行ができるようになります。

#2

$ START/CPU 4,7

この例で START/CPU コマンドは,CPU ID 4 および 7 のプロセッサが現在使用可能でアクティブでない場合に,それらを選択します。選択されたプロセッサの初期化が終了すると,システムのアクティブなプロセッサのセットの一部となり,プロセスのスケジューリングや実行ができるようになります。

#3

$ START/CPU/ALL

この例で START/CPU/ALL コマンドは,使用可能でアクティブでない残りのプロセッサをすべて選択します。選択されたプロセッサの初期化が終了すると,システムのアクティブなプロセッサのセットの一部となり,プロセスのスケジューリングや実行ができるようになります。


START/NETWORK

ローカル・ノードで指定したネットワーク・サービスを開始または再開します。 /NETWORK 修飾子は必須です。

形式

START/NETWORK ネットワーク・サービス


パラメータ

ネットワーク・サービス

開始または再開させたいネットワーク・サービス名を指定します。

説明

START/NETWORK コマンドを実行すると,ローカル・ノードでネットワーク・サービスの実行が開始します。

ネットワークを一時停止させるには,STOP/NETWORK コマンドを使用します。


#1

$ START/NETWORK  DECnet
 

このコマンドは,DECnet ネットワーク・サービスを開始させます。


前へ 次へ 目次 索引