8.3.7 adshexecコマンド(バッチジョブを実行する)
形式
- 通常実行する場合
adshexec[-v][-c][-m{EXTENDED|SIMPLE|MINIMUM}] [-t[-f][-o ascファイルのパス名]][-h 論理ホスト名] [-s{SPOOL|PARENT}][-x] {-r コマンドライン|ジョブ定義スクリプトファイルのパス名} [実行時パラメーター]
- デバッガモードで起動する場合【UNIX限定】
adshexec -d[-v][-c][-m{EXTENDED|SIMPLE|MINIMUM}] [-t[-f][-o ascファイルのパス名]][-h 論理ホスト名] [-x] ジョブ定義スクリプトファイルのパス名
機能
ジョブコントローラを起動して,引数に指定したジョブ定義スクリプトファイルのバッチジョブを実行します。ジョブ定義スクリプトファイルに記述するコマンドを-rオプションに直接指定して実行することもできます。
このコマンドの引数は位置パラメーターよりも前に指定してください。
引数
- -d【UNIX限定】
ジョブコントローラをデバッガモードで起動します。UNIX環境で使用できます。
デバッガモードではメモリ上にカバレージ情報を蓄積します。runコマンドを実行するごとに,継続蓄積になります。メモリ上に蓄積したカバレージ情報は,info coverageコマンドで表示できます。
-tオプションの指定がない場合,quitコマンドでデバッガを終了すると,メモリ上に蓄積したカバレージ情報を破棄します。
このオプションを指定した場合,ジョブ定義スクリプト稼働実績情報を採取しません。
- -v
バージョン情報を表示します。バッチジョブは実行しません。
- -c
ジョブ定義スクリプトファイルの文法チェックをします。実施するのは文法チェックだけで,バッチジョブは実行しません。
- -m{EXTENDED|SIMPLE|MINIMUM}
起動するジョブの標準出力および標準出力エラーの出力方式を指定します。出力モードについては,「3.4.4 ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する」を参照してください。
EXTENDED
拡張出力モードで動作します。
SIMPLE
簡潔出力モードで動作します。
MINIMUM
最小出力モードで動作します。
このオプションを省略した場合,OUTPUT_MODE_ROOTパラメーターとOUTPUT_MODE_CHILDパラメーターの指定に従います。
この指定はadshexecコマンドで起動するジョブだけに有効で,そのジョブからさらに起動されるジョブには継承されません。別途起動するジョブに対しては,その際実行されるadshexecコマンドに-mオプションを再度指定する必要があります。
ルートジョブが簡潔出力モードまたは最小出力モードで動作する場合,-sオプションを指定するか,OUTPUT_STDOUT環境設定パラメーターでSPOOLを指定しても,標準出力はスプールのファイルにリダイレクトしません。
-rオプションを使用する場合に,ジョブ実行ログが出力結果に混在しないようにするには,-m SIMPLEまたは-m MINIMUMを同時に指定してください。
- -t
カバレージ情報を蓄積してバッチジョブを実行します。蓄積したカバレージ情報は,コマンド終了時にascファイルに出力します。
UNIXでデバッガモードで起動する場合,-tオプションを指定しないときは,メモリ上だけでカバレージ情報を採取します。カバレージ情報は,デバッガのinfo coverageコマンドで表示できます。quitコマンドでデバッガを終了すると,採取したカバレージ情報を破棄します。
- -f
すでに採取しているカバレージ情報がある場合,実行するジョブ定義スクリプトファイルとバックアップ情報に差分があったときに,ascファイルを上書きするオプションを指定します。-fオプションを指定するには,-tオプションの指定が必要です。
- -fオプションを指定した場合
バックアップ情報を破棄して,新規にカバレージ情報を採取します。
採取しているカバレージ情報がない場合,新規に採取したカバレージ情報をascファイルに出力します。
- -fオプションを指定しない場合
ジョブ定義スクリプトファイルを実行しないで,コマンドエラーとなります。ascファイルは更新しません。
- -o ascファイルのパス名
Windowsの場合 ~<パス名>((1~229バイト))
UNIXの場合 ~<パス名>((1~1,005バイト))
カバレージ情報の蓄積時に,ascファイルのパス名を任意に変更できます。-oオプションを指定するには,-tオプションの指定が必要です。
このオプションを省略すると,adshexecコマンドを実行したときのカレントディレクトリのascファイルを指定したと解釈されます。ascファイルのファイル名を次に示します。
拡張子を除いたジョブ定義スクリプト名+_(アンダースコア)+ユーザー名+「.asc」
例えば,次の条件でadshexecコマンドを実行したとします。
adshexecコマンドを実行したときのカレントディレクトリ:/home/user1/test
ユーザー名:user1
ジョブ定義スクリプト名:script1.ash
このとき,-oオプションを指定しない場合のascファイル名は次のようになります。
/home/user1/test/script1_user1.asc
- -h 論理ホスト名 ~<論理ホスト名>((1~255バイト))
論理ホストで実行する場合の論理ホスト名を指定します。Windowsの場合,196バイトを超える論理ホスト名は指定できません。また,論理ホスト名の長さは63バイト以下を推奨します。63バイトを超える名称を指定すると,動作しないことがあります。
論理ホスト名の部分に空文字列を指定すると,JP1_HOSTNAME環境変数の設定値が使用されます。JP1_HOSTNAME環境変数が設定されていない場合は,KNAX0220-Eメッセージを出力して終了します。JP1_HOSTNAME環境変数については,マニュアル「JP1/Base 運用ガイド」を参照してください。
物理ホストで実行する場合は,このオプションを指定しないでください。
- -s{SPOOL|PARENT}
ルートジョブの標準出力の出力先を指定します。子孫ジョブは,このオプションにPARENTが指定されたものとして動作します。
このオプションを省略した場合,ルートジョブはパラメーターOUTPUT_STDOUTの指定に従って動作します。ルートジョブが簡潔出力モードまたは最小出力モードで動作する場合は,このオプションの指定に関係なく,標準出力はスプールのファイルにリダイレクトしません。
SPOOL
ルートジョブの標準出力をスプール内のファイルに出力します。
PARENT
ルートジョブの標準出力を,プロセス起動時に親プロセスから継承した出力先に出力します。親プロセスで出力先をリダイレクトしていない場合は,親プロセスと同じ出力先に出力します。
- -x
シェルオプションxtraceを有効にします。
なお,ジョブ定義スクリプト中で「set +x」や「set +o xtrace」を実行することで,シェルオプションxtraceを無効にできます。
- -r コマンドライン
ジョブで実行する内容をコマンドラインに指定します。コマンドラインにはシェル標準コマンドやUNIX互換コマンドなど,ジョブ定義スクリプトファイルに記述できるコマンドを指定できます。コマンドラインは,ジョブ定義スクリプトの1行の長さが上限(8,191バイト)を超えない長さで指定してください。
-vオプションと同時に指定した場合,-vオプションが有効となります。
- 【UNIXの場合】
-c,-d,または-tオプションと同時には指定できません。同時に指定した場合はエラーとなります。
- 【WINDOWSの場合】
-cおよび-tオプションと同時には指定できません。同時に指定するとエラーとなります。
詳細については,「3.2.4 ジョブで実行する内容をコマンドラインに指定する」を参照してください。
- ジョブ定義スクリプトファイルのパス名
Windowsの場合 ~<パス名>((1~247バイト))
UNIXの場合 ~<パス名>((1~1,023バイト))
ジョブ定義スクリプトファイルのパス名を指定します。
- 実行時パラメーター ~<任意文字列>((1~1,022バイト))
ジョブ定義スクリプトの位置パラメーターに格納する値を指定します。スペースを実行時パラメーターとして指定する場合は,その文字列を"(ダブルクォーテーション)で囲んでください。
終了コード
契機 |
終了コード |
|
---|---|---|
-cオプションがない場合 |
-cオプションがある場合 |
|
通常実行でexitコマンドまたは関数外のreturnコマンドを実行した |
コマンドに指定した終了コード |
− |
通常実行でexecコマンドの引数に外部コマンドを指定して実行した |
引数に指定した外部コマンドの終了コード |
− |
通常実行でジョブ定義スクリプトファイルの末尾までジョブ定義スクリプトを実行した |
最後に実行した,シェル標準コマンドまたはスクリプト拡張コマンドの終了コード |
− |
デバッガモードでジョブコントローラにエラーがない |
0 |
− |
ジョブ定義スクリプトファイル,および初期設定スクリプトファイルに文法エラーがない |
ジョブ定義スクリプトを実行し,次の終了コードになる
|
0 |
ジョブ定義スクリプトファイルに文法エラーがある |
1,または環境変数ADSH_JOBRC_FATALに設定した値 |
1,または環境変数ADSH_JOBRC_FATALに設定した値 |
初期設定スクリプトファイルに文法エラーがある |
1,または環境変数ADSH_JOBRC_FATALに設定した値 |
− |
環境ファイル読み込みエラーなど,ジョブ定義スクリプト実行中のエラーを除くジョブコントローラのエラーが発生した |
1,または環境変数ADSH_JOBRC_FATALに設定した値 |
1,または環境変数ADSH_JOBRC_FATALに設定した値 |
初期設定スクリプトファイルが存在しない。またはジョブコントローラが初期設定スクリプトファイルを実行するために必要な権限が初期設定スクリプトファイルに割り当てられていない。 |
1,または環境変数ADSH_JOBRC_FATALに設定した値 |
− |
JP1/AJSの強制終了操作を実行した。※【UNIX限定】 |
143 |
143 |
ジョブコントローラプロセスがシグナルを受信して終了した【UNIX限定】 |
128+シグナル番号 |
128+シグナル番号 |
ジョブコントローラプロセスが,JP1/AJSやWindowsのタスクマネージャーなど外部から強制終了された【Windows限定】 |
ジョブコントローラを強制終了したプログラムが指定した終了コード |
ジョブコントローラを強制終了したプログラムが指定した終了コード |
OSに起因する要因でジョブコントローラの起動が失敗した【Windows限定】 |
1~3 |
1~3 |
環境変数ADSH_JOBRC_FATALの解析エラーが発生した |
255 |
255 |
環境変数ADSH_LINK_SUPPORTに不当な値が指定された【Windows限定】 |
255 |
255 |
- (凡例)
−:ジョブ定義スクリプトを実行しないため該当しません。
- 注※
-
UNIXジョブの「コマンド文」でジョブを定義している場合,JP1/AJSで参照できるジョブの終了コードは-1になります。
注意事項
同じオプションを複数指定した場合,最後の指定が有効になります。
オプション指定が-vや-cと同時指定の場合,優先度が高い順に有効になります。優先順位は,-v,-c,その他のオプションの順になります。優先度が低いものは無視されます。
例
-dオプションは無視され,-vだけが有効になります。
$ adshexec -v -d MyShell.ash
次の場合に,-oオプションを指定しないでカバレージ情報を蓄積したときは,ascファイルのファイル名が重複します。ascファイル名が重複しないようにジョブ定義スクリプトのファイル名またはascファイルのファイル名を変更してください。
拡張子だけ異なるファイル名の,複数のジョブ定義スクリプトのカバレージ情報を蓄積した場合
例:sc.1およびsc.2
別ディレクトリにある同じファイル名のジョブ定義スクリプトのカバレージ情報を蓄積した場合
例:/dir1/sc1および/dir2/sc1
ファイル名として.(ドット)から始まるファイル名を指定しないでください。
ファイル名に予約デバイス名(CONやAUX,NULなど)は使用しないでください。【Windows限定】
ファイル名にNTFSのストリームは使用しないでください。【Windows限定】
-dオプションを指定した場合,実行時パラメーターは指定できません。実行時パラメーターは,runコマンドの引数に指定してください。
ascファイルのアクセス権限は次のとおりに設定されます。
ファイルの所有者(作成者)には,umaskの指定に関係なく,r(読み込み)またはw(書き込み)のアクセス権限が与えられます。グループ,一般のアクセス権限は,コマンドが起動されたときのumaskの指定に従って設定されます。【UNIX限定】
ascファイルには,実行ユーザー自身に対して原則,フルコントロールのアクセス許可を与えられます。しかし,実際のファイルのアクセス許可は,Windowsのアクセス許可の継承(上位ディレクトリでのアクセス許可の継承)の影響を受けます。また,そのほかのユーザーに対するアクセス許可は,Windowsのアクセス許可の継承(上位ディレクトリでのアクセス許可の継承)に従います。【Windows限定】
子プロセスとして生成したadshexecコマンドにファイルディスクリプタが引き継がれないで,クローズされた状態になります。例えば,子プロセスのジョブ定義スクリプト内で,親プロセスがオープンしていたファイルディスクリプタに対して再度オープンしないで入出力を行おうとするとエラーになります。標準出力と標準エラー出力は再度オープンされた状態になります。【Windows限定】
使用例
文法チェックモードでジョブコントローラを起動します。
adshexec -c /home/user/shell/JOB.ash
デバッガモードでジョブコントローラを起動します。
adshexec -d /home/user/shell/JOB.ash
バッチジョブは実行しないで,ジョブコントローラのバージョン情報を表示します。
adshexec -v
ジョブ定義スクリプトの位置パラメーターに渡す実行時パラメーターを指定してジョブコントローラを起動します。
adshexec /home/user/shell/JOB.ash parm1 parm2
カバレージ情報を採取します。
adshexec -t /home/user/shell/JOB.ash
ジョブ定義スクリプトファイルの内容が異なる場合,これまでに採取したカバレージ情報を破棄し,新規にカバレージ情報を採取します。
adshexec -t -f /home/user/shell/JOB.ash
採取したカバレージ情報を格納するascファイルを/home/user/JOB.ascとします。
adshexec -t -o /home/user/JOB.asc /home/user/shell/JOB.ash
シェルオプションxtraceを有効にしてジョブコントローラを起動します。
adshexec -x /home/user/shell/JOB.ash
-rオプションのコマンドラインにジョブで実行するコマンドを指定してジョブコントローラを起動します。
adshexec -r "ls *"
-rオプションのコマンドラインで参照する位置パラメーターを実行時パラメーターに指定してジョブコントローラを起動します。
ジョブ定義スクリプトファイルに記述する場合の例を次に示します。コマンドラインに位置パラメーターを指定するため,シングルクォーテーションで囲む必要があります。
adshexec -r 'cat $1 | grep $2' file.txt abc
ファイルパスを扱うコマンドを-rオプションのコマンドラインに指定してジョブコントローラを起動します。
ジョブ定義スクリプトファイルに記述する場合の例を次に示します。
adshexec -r 'cat "C:\\Documents and Settings\\user001\\file.txt"'