ページの先頭行へ戻る
Systemwalker Operation Manager  使用手引書
FUJITSU Software

B.5.2 ジョブの実行環境について

ジョブの実行ディレクトリについて【UNIX版】

UNIX版では、ジョブをジョブネットに登録する時に“ディレクトリ”を指定しなかった場合、ジョブネットの実行属性が“旧バージョン互換(旧・標準)”の場合は、ジョブはジョブ登録者のホームディレクトリで実行されます。“ジョブ実行制御”属性の場合は、ジョブはジョブネットを登録したプロジェクトの所有者のホームディレクトリで実行されます。

環境変数について【UNIX版】

UNIX版の場合、ジョブが起動する前に環境変数(HOME、SHELL、LOGNAME、USER、MAIL、PWD)がパスワードファイルから設定されます。ディレクトリ名はPWD環境変数に設定されます。HOME環境変数には、ホームディレクトリ名が設定されます。SHELL環境変数に設定される値は、後で説明する“シェル戦略を考える”に従って設定されます。

ジョブスケジューラが設定する環境変数について

ジョブスケジューラは、ジョブを起動する前に、以下に示す環境変数に値を設定します。先行ジョブの種類や終了コードなどの違いにより後続ジョブの処理を変えたいような場合には、これらの環境変数の値を利用してください。

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の場合は、環境変数の値は省略されます。

Enterprise EditionGlobal Enterprise EditionJOBSCH_SUB_SYSTEM環境変数

複数のサブシステムが動作する環境において、サブシステム番号が格納されています。

JOBSCH_PROJECT環境変数

ジョブネットが登録されているプロジェクト名が格納されています。

JOBSCH_JOBNET環境変数

ジョブネット名が格納されています。

JOBSCH_JOBNAME環境変数

ジョブの登録情報に、ジョブ実行制御へ渡すジョブ名が登録されている場合は、そのジョブ名が格納されます。ジョブ名が登録されていない場合には、[登録-ジョブ]ウィンドウで登録された実行ファイルの情報(qsubコマンドのオプションおよび実行ファイルのパラメタを含む)が格納されています。

JOBSCH_JOBNET_DATE環境変数

ジョブネットが何日付けの構成で起動しているかを示す値が格納されています。値は年月日の形式“yyyymmdd”で格納されます。

JOBSCH_ENVIRONMENT環境変数

文字列“BATCH”が格納されています。

LANG環境変数【UNIX版】

動作する言語種別を表す値(C、ja_JP.eucJP、ja_JP.PCKなど)が格納されています。

ジョブスケジューラデーモンは、LANG環境変数にCを設定して動作しています。このため、ジョブの実行ユーザのスタートアップシェル(.login .cshrc .profile)、ジョブ、またはアプリケーション内にLANG環境変数が設定されていない場合、LANG環境変数にCが設定された状態でジョブまたはアプリケーションが動作します。

LANG環境変数にC以外を設定して動作させたい場合は、LANG環境変数に、以下のように値を設定してください。

ログインシェルがcshの場合の設定例(Solaris 8以降の場合)

.login または、.cshrcに以下の設定をします。

  • 文字コードがEUCの場合:  setenv LANG ja_JP.eucJP

  • 文字コードがSJISの場合:  setenv LANG ja_JP.PCK

ログインシェルがshまたはkshの場合の設定例(Solaris 8以降の場合)

.profileに以下の設定をします。

  • 文字コードがEUCの場合:  LANG=ja_JP.eucJP;export LANG

  • 文字コードがSJISの場合:  LANG=ja_JP.PCK;export LANG


さらに、先行ジョブのあるジョブの場合、以下の環境変数に値が設定されます。ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行したジョブ)の情報が設定されます。

JOBSCH_PRE_JOBNAME環境変数

先行ジョブの登録情報に、ジョブ実行制御へ渡すジョブ名が登録されている場合は、そのジョブ名が格納されます。ジョブ名が登録されていない場合には、[登録-ジョブ]ウィンドウで登録された実行ファイルの情報(qsubコマンドのオプションおよび実行ファイルのパラメタを含む)が格納されています。ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行が終了したジョブ)の情報が設定されます。

JOBSCH_PRE_JOBCODE環境変数

先行ジョブの終了コードが格納されています。

ただし、先行ジョブが複数ある場合は、そのジョブの起動の契機となったジョブ(先行ジョブのうち、最後に実行が終了したジョブ)の情報が設定されます。

JOBSCH_ROOT_JOBNET

階層化されたジョブネットの場合、第1階層のジョブネット名が格納されています。階層化されていないジョブネッ

トの場合、JOBSCH_JOBNET環境変数と同じジョブネット名が格納されています。


なお、ジョブネットの実行属性が“ジョブ実行制御”の場合で、ジョブの実行を他ホストへ依頼する場合(ネットワークジョブの場合)および、ジョブネットの実行属性が“PowerAIM”の場合は、環境変数は設定されません。

ジョブ実行制御が設定する環境変数について

ジョブ実行制御は、ジョブを起動する前に、以下に示す環境変数に値を設定します。先行ジョブの種類や終了コードなどの違いにより後続ジョブの処理を変更したいような場合には、これらの環境変数の値を利用してください。

JC_CHOST環境変数

クライアントホスト名が格納されます。[ジョブ情報編集/投入]ダイアログボックス/ウィンドウまたは、[ジョブ選択/投入]ウィンドウから投入された場合に設定されます。

JC_CUSER環境変数

ジョブ所有者名が格納されています。

JC_COMMENT環境変数

ジョブコメントが格納されています。

JC_EXHOST環境変数

実行ホスト名が格納されています。

JC_JOBID環境変数

ジョブ番号が格納されています。

JC_JOBNAME環境変数

ジョブ名が格納されています。

JC_QUEUE環境変数

キュー名が格納されています。

QSUB_WORKDIR環境変数

ジョブ投入ディレクトリ名が格納されています。

Enterprise EditionGlobal Enterprise EditionJC_SUBSYSID環境変数

複数のサブシステムが動作する環境において、サブシステム番号が格納されています。

JC_TRANSFILEDIR 環境変数

ネットワークジョブや分散実行ジョブにおいて、入出力ファイルの転送を実施している場合、実行サーバ上で実行されるジョブプロセスの環境変数に実行サーバ上で送受信されるファイルが格納されているディレクトリが設定されます。

JC_SCHEDULESERVER環境変数

ネットワークジョブや分散実行ジョブにおいて、実行サーバ上で実行されるジョブプロセスの環境変数にスケジュールサーバのホスト名が設定されます。

アプリケーションが参照できる環境変数【Windows版】

Systemwalker Operation Managerから起動されるアプリケーションが参照できる環境変数を、ジョブの投入方法別(スケジュールジョブ、qsubコマンド、Mp_SubmitJob API)に示します。

ユーザ個別情報となるユーザ環境変数、およびautoexec.batで設定している環境変数は、Systemwalker Operation Managerから起動されるアプリケーションで参照することはできません。

アプリケーションがユーザ環境変数に登録された環境変数を使用する場合、Systemwalker Operation Managerからそのアプリケーションを実行させるには、以下のいずれかの対処が必要です。

アプリケーションが、ジョブスケジューラが設定する環境変数または、ジョブ実行制御が設定する環境変数を使用する場合、Systemwalker Operation Managerからそのアプリケーションを実行させるには、以下の対処が必要です。

参照できる環境変数の数は、最大512です。

環境変数の数が512を超えた場合、不特定の環境変数を参照できなくなることがあるため、以下に示す環境変数の中から不要なものを削除し、環境変数の数が512以下となるようにしてください。

ネットワークジョブに引き継がれる環境変数について

ネットワークジョブの場合、“ジョブスケジューラが設定する環境変数について”および“ジョブ実行制御が設定する環境変数について”に示す環境変数は引き継がれません。また、“ジョブスケジューラが設定する環境変数について”で示す環境変数を参照することもできません。

ネットワークジョブの場合に引き継がれる環境変数は、[登録/監視-ジョブ]ウィンドウ-[詳細情報]シートの[環境変数]で設定されたものです。引き継ぎたい環境変数については、[登録/監視-ジョブ]ウィンドウ-[詳細情報]シートの[環境変数]で別途設定してください。

アプリケーションが作成する一時ファイルの格納場所について【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