付録B.1 環境変数を定義するときの注意事項
ジョブ実行時に使用する環境変数を定義する場合の注意事項を示します。
なお,環境変数の一覧については,マニュアル「JP1/Automatic Job Management System 2 コマンドリファレンス 1. コマンド 環境変数一覧」を参照してください。
- 環境変数は「環境変数名=値」の形式で指定してください。複数指定する場合は,「環境変数名=値」ごとに改行文字で区切ってください。
- (例)
- 環境変数名1=ABCD<改行>
- 環境変数名2=EFGH<改行>
<改行>は改行コードで区切り,「;」や「:」などの文字は使用しないでください。
- 「環境変数名=値」の形式以外の文字列は指定しないでください。ジョブを実行するホストのOSによってはジョブが異常終了することがあります。
- 「AJS」で始まる環境変数(例:AJSxxxx(xxxxは任意の文字列))は,システムで予約しているため,大文字・小文字にかかわらず,使用しないでください。
- 「JP1」で始まる環境変数(例:JP1xxxx(xxxxは任意の文字列))は,システムで予約しているため,大文字・小文字にかかわらず,使用しないでください。
- 次に示す環境変数は,ジョブ定義の「環境変数」や「環境変数ファイル名」に指定するファイルの中に設定できません。
- AJSENV
- AJSPRE_ST
- AJSPRE_RC
- AJSNETNAME
- AJSJOBNAME
- AJSHOST
- AJS_AJSCONF
- AJSEXDATE
- AJSEXECID
- AJSEXECPID
- JP1JobName
- JP1JobID
- JP1UserName
- HOME
- SHELL
- LANG
- LOGNAME
- MAIL
- PATH
- 環境変数には,JP1/AJS2で設定されるもの(ジョブ実行時に設定される環境変数,ジョブ定義時に指定した環境変数,ジョブ定義時に環境変数ファイルとして指定したファイル内の環境変数)のほかに,ジョブ定義時に指定したコマンド文やスクリプトファイル,ローカルログインスクリプト,システムログインスクリプトにも設定できます。これらの中で同じ環境変数があった場合,次に示す優先順位に従って有効になります(優先順位がいちばん高いのは1です)。
- Windowsの場合
- 1. 環境変数※1に指定した環境変数
- 2. 環境変数ファイル※2に指定した環境変数
- 3. システム環境変数
- UNIXの場合
- 1. ジョブ定義時に指定したコマンドやスクリプトファイルでの定義
- 2. ローカルログインスクリプトでの定義
- 3. システムログインスクリプトでの定義
- 4. 環境変数※1に指定した環境変数
- 5. 環境変数ファイル※2に指定した環境変数
- 注※1
- JP1/AJS2 - Viewのダイアログボックスで環境変数に指定した変数,またはjpqjobsubコマンドの-envオプションに指定した変数
- 注※2
- JP1/AJS2 - Viewのダイアログボックスで環境変数ファイルに指定した変数,またはjpqjobsubコマンドの-evオプションに指定した変数ファイル
- JP1/AJS2 - View のダイアログボックスで環境変数を定義する場合,またはjpqjobsubコマンドの-envオプションで,次の例のように値に環境変数を参照する指定はできません。
環境変数'xyz'には'%abc%'がそのまま文字列として設定されます。
- (例)
- abc=1
- xyz=%abc%
環境変数の値を参照する指定をする場合は,実行するジョブのバッチファイルまたはスクリプトファイルで指定してください。
- 注意
- Windowsの場合,JP1/AJS2は,通常,JP1/AJS2サービスとして起動されるため,ユーザー環境変数は読み込みません。JP1/AJS2からジョブを起動する際は,JP1/AJS2サービス起動時に読み込んだシステム環境変数を設定します。ただし,クラスタシステムをセットアップすると,MSCSから起動したJP1/AJS2サービス(論理ホストだけ)ではユーザー環境変数が有効になります。これは,MSCSの仕様でMSCSがユーザー環境変数を読み込むためです。MSCS以外のクラスタソフトについては仕様を確認してください。
- なお,JP1/AJS2サービス起動時に読み込む環境変数は,システム環境変数のほかに,OSが起動する際に設定する環境変数を含みます。ログインスクリプトに指定した環境変数は読み込みません。