ジョブの実行ディレクトリについて【UNIX版】
UNIX版では、ジョブをジョブネットに登録する時に“ディレクトリ”を指定しなかった場合、ジョブネットの実行属性が“旧バージョン互換(旧・標準)”の場合は、ジョブはジョブ登録者のホームディレクトリで実行されます。“ジョブ実行制御”属性の場合は、ジョブはジョブネットを登録したプロジェクトの所有者のホームディレクトリで実行されます。
環境変数について【UNIX版】
UNIX版の場合、ジョブが起動する前に環境変数(HOME、SHELL、LOGNAME、USER、MAIL、PWD)がパスワードファイルから設定されます。ディレクトリ名はPWD環境変数に設定されます。HOME環境変数には、ホームディレクトリ名が設定されます。SHELL環境変数に設定される値は、後で説明する“シェル戦略を考える”に従って設定されます。
ジョブスケジューラが設定する環境変数について
ジョブスケジューラは、ジョブを起動する前に、以下に示す環境変数に値を設定します。先行ジョブの種類や終了コードなどの違いにより後続ジョブの処理を変えたいような場合には、これらの環境変数の値を利用してください。
プロジェクトの所有者が格納されています。
ジョブのディレクトリ名が格納されています。ディレクトリを指定しなかった場合は、プロジェクトの所有者のホームディレクトリ名が格納されます。
プロジェクトの所有者のホームディレクトリ名が格納されています。
プロジェクトの所有者名が格納されています。
“/usr/mail/プロジェクトの所有者名”が格納されています。なお、AIX版の場合は、“/usr/spool/mail/プロジェクトの所有者名”が格納されます。Linux版の場合は、“/var/spool/mail/プロジェクトの所有者名”が格納されます。
接続先のサーバがWindowsの場合は、プロジェクトの所有者のドメイン名が格納されています。ドメイン名が指定されていない場合は、環境変数の値は省略されます。
接続先のサーバがUNIXの場合は、環境変数の値は省略されます。
複数のサブシステムが動作する環境において、サブシステム番号が格納されています。
ジョブネットが登録されているプロジェクト名が格納されています。
ジョブネット名が格納されています。
ジョブの登録情報に、ジョブ実行制御へ渡すジョブ名が登録されている場合は、そのジョブ名が格納されます。ジョブ名が登録されていない場合には、[登録-ジョブ]ウィンドウで登録された実行ファイルの情報(qsubコマンドのオプションおよび実行ファイルのパラメタを含む)が格納されています。
ジョブネットが何日付けの構成で起動しているかを示す値が格納されています。値は年月日の形式“yyyymmdd”で格納されます。
文字列“BATCH”が格納されています。
動作する言語種別を表す値(C、ja_JP.eucJP、ja_JP.PCKなど)が格納されています。
ジョブスケジューラデーモンは、LANG環境変数にCを設定して動作しています。このため、ジョブの実行ユーザのスタートアップシェル(.login .cshrc .profile)、ジョブ、またはアプリケーション内にLANG環境変数が設定されていない場合、LANG環境変数にCが設定された状態でジョブまたはアプリケーションが動作します。
LANG環境変数にC以外を設定して動作させたい場合は、LANG環境変数に、以下のように値を設定してください。
.login または、.cshrcに以下の設定をします。
文字コードがEUCの場合: setenv LANG ja_JP.eucJP
文字コードがSJISの場合: setenv LANG ja_JP.PCK
.profileに以下の設定をします。
文字コードがEUCの場合: LANG=ja_JP.eucJP;export LANG
文字コードがSJISの場合: LANG=ja_JP.PCK;export LANG
さらに、先行ジョブのあるジョブの場合、以下の環境変数に値が設定されます。ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行したジョブ)の情報が設定されます。
先行ジョブの登録情報に、ジョブ実行制御へ渡すジョブ名が登録されている場合は、そのジョブ名が格納されます。ジョブ名が登録されていない場合には、[登録-ジョブ]ウィンドウで登録された実行ファイルの情報(qsubコマンドのオプションおよび実行ファイルのパラメタを含む)が格納されています。ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行が終了したジョブ)の情報が設定されます。
先行ジョブの終了コードが格納されています。
ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行が終了したジョブ)の情報が設定されます。
階層化されたジョブネットの場合、第1階層のジョブネット名が格納されています。階層化されていないジョブネットの場合、JOBSCH_JOBNET環境変数と同じジョブネット名が格納されています。
なお、ジョブネットの実行属性が“ジョブ実行制御”の場合で、ジョブの実行を他ホストへ依頼する場合(ネットワークジョブの場合)および、ジョブネットの実行属性が“PowerAIM”の場合は、環境変数は設定されません。
ジョブ実行制御が設定する環境変数について
ジョブ実行制御は、ジョブを起動する前に、以下に示す環境変数に値を設定します。先行ジョブの種類や終了コードなどの違いにより後続ジョブの処理を変更したいような場合には、これらの環境変数の値を利用してください。
クライアントホスト名が格納されます。[ジョブ情報編集/投入]ダイアログボックス/ウィンドウまたは、[ジョブ選択/投入]ウィンドウから投入された場合に設定されます。
ジョブ所有者名が格納されています。
ジョブコメントが格納されています。
実行ホスト名が格納されています。
ジョブ番号が格納されています。
ジョブ名が格納されています。
キュー名が格納されています。
ジョブ投入ディレクトリ名が格納されています。
複数のサブシステムが動作する環境において、サブシステム番号が格納されています。
ネットワークジョブや分散実行ジョブにおいて、入出力ファイルの転送を実施している場合、実行サーバ上で実行されるジョブプロセスの環境変数に実行サーバ上で送受信されるファイルが格納されているディレクトリが設定されます。
ネットワークジョブや分散実行ジョブにおいて、実行サーバ上で実行されるジョブプロセスの環境変数にスケジュールサーバのホスト名が設定されます。
アプリケーションが参照できる環境変数【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からそのアプリケーションを実行させるには、以下の対処が必要です。
参照できる環境変数の数は、最大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