ジョブの実行ディレクトリについて【UNIX版】
UNIX版では、ジョブをジョブネットに登録する時に“ディレクトリ”を指定しなかった場合、ジョブネットの実行属性が“旧バージョン互換(旧・標準)”の場合は、ジョブはジョブ登録者のホームディレクトリで実行されます。“ジョブ実行制御”属性の場合は、ジョブはジョブネットを登録したプロジェクトの所有者のホームディレクトリで実行されます。
環境変数について
UNIX版の場合、ジョブが起動する前に環境変数(HOME、SHELL、LOGNAME、USER、MAIL、PWD)がパスワードファイルから設定されます。ディレクトリ名はPWD環境変数に設定されます。HOME環境変数には、ホームディレクトリ名が設定されます。SHELL環境変数に設定される値は、後で説明する“シェル戦略を考える”に従って設定されます。
なお、ネットワークジョブの場合、“ジョブスケジューラが設定する環境変数について”および“ジョブ実行制御が設定する環境変数について”に示す環境変数は引き継がれません。
参考
ネットワークジョブの場合、スケジュールサーバおよび実行サーバが、共にSystemwalker OperationMGR V10.0L20/10.1以降のときは、[登録/監視-ジョブ]ウィンドウ-[詳細情報]シートの[環境変数]において設定された環境変数は、ネットワークジョブに引き継がれます。(スケジュールサーバおよび実行サーバが、共にSystemwalker OperationMGR V10.0L20/10.1以降でない場合、これらの環境変数は引き継がれません。)
ジョブスケジューラが設定する環境変数について
ジョブスケジューラは、ジョブを起動する前に、以下に示す環境変数に値を設定します。先行ジョブの種類や終了コードなどの違いにより後続ジョブの処理を変えたいような場合には、これらの環境変数の値を利用してください。
USERNAME環境変数【Windows版】/ USER環境変数【UNIX版】
プロジェクトの所有者が格納されています。
PWD環境変数【UNIX版】
ジョブのディレクトリ名が格納されています。ディレクトリを指定しなかった場合は、プロジェクトの所有者のホームディレクトリ名が格納されます。
HOME環境変数【UNIX版】
プロジェクトの所有者のホームディレクトリ名が格納されています。
LOGNAME環境変数【UNIX版】
プロジェクトの所有者名が格納されています。
MAIL環境変数【UNIX版】
“/usr/mail/プロジェクトの所有者名”が格納されています。なお、AIX版の場合は、“/usr/spool/mail/プロジェクトの所有者名”が格納されます。Linux版の場合は、“/var/spool/mail/プロジェクトの所有者名”が格納されます。
USERDOMAIN環境変数
接続先のサーバがWindowsの場合は、プロジェクトの所有者のドメイン名が格納されています。ドメイン名が指定されていない場合は、環境変数の値は省略されます。
接続先のサーバがUNIXの場合は、環境変数の値は省略されます。
JOBSCH_SUB_SYSTEM環境変数
複数のサブシステムが動作する環境において、サブシステム番号が格納されています。
JOBSCH_PROJECT環境変数
ジョブネットが登録されているプロジェクト名が格納されています。
JOBSCH_JOBNET環境変数
ジョブネット名が格納されています。
JOBSCH_JOBNAME環境変数
ジョブの登録情報に、ジョブ実行制御へ渡すジョブ名が登録されている場合は、そのジョブ名が格納されます。ジョブ名が登録されていない場合には、[登録-ジョブ]ウィンドウで登録された実行ファイルの情報(qsubコマンドのオプションおよび実行ファイルのパラメタを含む)が格納されています。
JOBSCH_JOBNET_DATE環境変数
ジョブネットが何日付けの構成で起動しているかを示す値が格納されています。値は年月日の形式“yyyymmdd”で格納されます。
JOBSCH_ENVIRONMENT環境変数
文字列“BATCH”が格納されています。
LANG環境変数【UNIX版】
動作する言語種別を表す値(C、ja、ja_JP.PCKなど)が格納されています。
ジョブスケジューラデーモンは、LANG環境変数にCを設定して動作しています。このため、ジョブの実行ユーザのスタートアップシェル(.login .cshrc .profile)、ジョブ、またはアプリケーション内にLANG環境変数が設定されていない場合、LANG環境変数にCが設定された状態でジョブまたはアプリケーションが動作します。
LANG環境変数にC以外を設定して動作させたい場合は、LANG環境変数に、以下のように値を設定してください。
.login または、.cshrcに以下の設定をします。
文字コードがEUCの場合: setenv LANG ja
文字コードがSJISの場合: setenv LANG ja_JP.PCK
.profileに以下の設定をします。
文字コードがEUCの場合: LANG=ja;export LANG
文字コードがSJISの場合: LANG=ja_JP.PCK;export LANG
さらに、先行ジョブのあるジョブの場合、以下の環境変数に値が設定されます。ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行したジョブ)の情報が設定されます。
JOBSCH_PRE_JOBNAME環境変数
先行ジョブの登録情報に、ジョブ実行制御へ渡すジョブ名が登録されている場合は、そのジョブ名が格納されます。ジョブ名が登録されていない場合には、[登録-ジョブ]ウィンドウで登録された実行ファイルの情報(qsubコマンドのオプションおよび実行ファイルのパラメタを含む)が格納されています。ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行が終了したジョブ)の情報が設定されます。
JOBSCH_PRE_JOBCODE環境変数
先行ジョブの終了コードが格納されています。
ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行が終了したジョブ)の情報が設定されます。
なお、ジョブネットの実行属性が“ジョブ実行制御”の場合で、ジョブの実行を他ホストへ依頼する場合(ネットワークジョブの場合)および、ジョブネットの実行属性が“PowerAIM”の場合は、環境変数は設定されません。
ジョブ実行制御が設定する環境変数について
ジョブ実行制御は、ジョブを起動する前に、以下に示す環境変数に値を設定します。先行ジョブの種類や終了コードなどの違いにより後続ジョブの処理を変更したいような場合には、これらの環境変数の値を利用してください。
JC_CHOST環境変数
クライアントホスト名が格納されます。[ジョブ情報編集/投入]ダイアログボックス/ウィンドウまたは、[ジョブ選択/投入]ウィンドウから投入された場合に設定されます。
JC_CUSER環境変数
ジョブ所有者名が格納されています。
JC_COMMENT環境変数
ジョブコメントが格納されています。
JC_EXHOST環境変数
実行ホスト名が格納されています。
JC_JOBID環境変数
ジョブ番号が格納されています。
JC_JOBNAME環境変数
ジョブ名が格納されています。
JC_QUEUE環境変数
キュー名が格納されています。
QSUB_WORKDIR環境変数
ジョブ投入ディレクトリ名が格納されています。
JC_SUBSYSID環境変数
複数のサブシステムが動作する環境において、サブシステム番号が格納されています。
ネットワークジョブや分散実行ジョブにおいて、入出力ファイルの転送を実施している場合、実行サーバ上で実行されるジョブプロセスの環境変数に実行サーバ上で送受信されるファイルが格納されているディレクトリが設定されます。
ネットワークジョブや分散実行ジョブにおいて、実行サーバ上で実行されるジョブプロセスの環境変数にスケジュールサーバのホスト名が設定されます。
アプリケーションが参照できる環境変数【Windows版】
Systemwalker Operation Managerから起動されるアプリケーションが参照できる環境変数を、ジョブの投入方法別(スケジュールジョブ、qsubコマンド、Mp_SubmitJob API)に示します。
スケジュールジョブの場合
[登録-ジョブ]ウィンドウ-[詳細情報]シートに登録した環境変数
“ジョブスケジューラが設定する環境変数について”に列挙した環境変数
“ジョブ実行制御が設定する環境変数について”に列挙した環境変数
OSが起動した時点のシステム環境変数
上記a~dのうち、2つ以上に同名の環境変数が存在する場合は、先に列挙したものが参照できます。
qsubコマンドで起動するジョブの場合
qsubコマンドを起動したアプリケーション/バッチファイルの環境変数
qsubコマンドの-xオプションを指定した場合のみ参照できます。
“ジョブ実行制御が設定する環境変数について”に列挙した環境変数
OSが起動した時点のシステム環境変数
上記a~cのうち、2つ以上に同名の環境変数が存在する場合は、先に列挙したものが参照できます。
Mp_SubmitJob APIで起動するジョブの場合
Mp_SubmitJob APIを呼び出したアプリケーションの環境変数
Mp_SubmitJob APIの第2引数で、qsubコマンドの-xオプションを指定した場合のみ参照できます。
“ジョブ実行制御が設定する環境変数について”に列挙した環境変数
OSが起動した時点のシステム環境変数
上記a~cのうち、2つ以上に同名の環境変数が存在する場合は、先に列挙したものが参照できます。
ユーザ個別情報となるユーザ環境変数、およびautoexec.batで設定している環境変数は、Systemwalker Operation Managerから起動されるアプリケーションで参照することはできません。
アプリケーションがユーザ環境変数に登録された環境変数を使用する場合、Systemwalker Operation Managerからそのアプリケーションを実行させるには、以下のいずれかの対処が必要です。
アプリケーションを実行するために必要なユーザ環境変数をシステム環境変数([コントロールパネル]の[システム]で設定可能)に登録する。
アプリケーションを起動するためのバッチファイルを作成し、アプリケーションを実行するために必要な環境変数をバッチファイルの先頭に登録する。
[登録-ジョブ]ウィンドウ-[詳細情報]シートで環境変数を登録する(スケジュールジョブの場合のみ)。
アプリケーションが、ジョブスケジューラが設定する環境変数または、ジョブ実行制御が設定する環境変数を使用する場合、Systemwalker Operation Managerからそのアプリケーションを実行させるには、以下の対処が必要です。
アプリケーションを起動するためのバッチファイルを作成し、そのバッチファイルの中からアプリケーションに環境変数を渡す。
また、ネットワークジョブの場合は、ジョブスケジューラが設定する以下の環境変数を参照することができません。
USERNAME
USERDOMAIN
JOBSCH_PROJECT
JOBSCH_JOBNET
JOBSCH_JOBNAME
JOBSCH_ENVIRONMENT
JOBSCH_PRE_JOBNAME
JOBSCH_PRE_JOBCODE
参照できる環境変数の数は、最大512です。
環境変数の数が512を超えた場合、不特定の環境変数を参照できなくなることがあるため、以下に示す環境変数の中から不要なものを削除し、環境変数の数が512以下となるようにしてください。
スケジュールジョブの場合
[登録-ジョブ]ウィンドウ-[詳細情報]シートに登録した環境変数
システム環境変数
システム環境変数を更新した場合、システムを再起動する必要があります。
qsubコマンドで起動するジョブの場合
qsubコマンドを起動したアプリケーション/バッチファイルの環境変数
qsubコマンドの-xオプションを省略した場合は、本環境変数は採用されないため、削除する必要はありません。
システム環境変数
システム環境変数を更新した場合、システムを再起動する必要があります。
Mp_SubmitJob APIで起動するジョブの場合
Mp_SubmitJob APIを呼び出したアプリケーションの環境変数
Mp_SubmitJob APIの第2引数で、qsubコマンドの-xオプションを省略した場合は、本環境変数は採用されないため、削除する必要はありません。
システム環境変数
システム環境変数を更新した場合、システムを再起動する必要があります。
アプリケーションが作成する一時ファイルの格納場所について【Windows版】
多くのアプリケーションは、そのアプリケーションが実行中に作成する一時ファイルを以下に示す環境変数に設定されたパスに作成します。
これらの環境変数をシステム環境変数に登録することを推奨します。
環境変数名 | 環境変数に設定する値の例 |
---|---|
temp | c:\temp(注) |
tmp | c:\temp(注) |
一般的に作業用の一時ファイルを作成するディレクトリとして使用されるパスです。十分な空き容量が確保されているドライブに作成し、環境変数 TEMPおよびTMPにパス名を登録します。
システム環境変数の更新について【Windows版】
Systemwalker Operation Managerは、システム起動時に登録されているシステム環境変数を使用してアプリケーションを起動します。そのため、システム環境変数に追加、更新、および削除した環境変数をアプリケーションで参照するには、システムを再起動する必要があります。
umaskの値について【UNIX版】
ジョブ実行制御デーモンは、umaskの値に0000を設定して動作しています。そのため、ジョブの実行ユーザのシェルのスタートアップファイル(注)、またはアプリケーション内でumaskの値が設定されていない場合、umaskの値に0000が設定された状態でアプリケーションが動作します。
アプリケーションが作成するディレクトリ/ファイルに任意のアクセス権モードを設定するには、シェルのスタートアップファイル、またはアプリケーション内で適切なumaskの値を設定してください。
[実行ユーザのログインシェルがshまたはkshの場合]
/etc/profile 、および実行ユーザのホームディレクトリの.profile
[実行ユーザのログインシェルがcshの場合]
/etc/.login,実行ユーザのホームディレクトリ.login 、および同ディレクトリの.cshrc