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

B.5.10 ジョブ投入者のログインシェルがCシェルの場合の注意【UNIX版】

ジョブ実行制御は、ジョブ投入者のログインシェル(パスワードエントリに登録されている情報)をジョブ起動時に使用していますが、ログインシェルがCシェルの場合、以下の注意が必要です。

.logoutファイルの変更について

ジョブ投入者のホームディレクトリに、.logoutファイルが存在する場合は注意が必要です。ジョブ実行制御でジョブを起動する場合は、内部的にログインさせてシェルスクリプトを実行します。したがって、.logoutファイルが存在する場合、シェルスクリプトの実行後に、.logoutファイルに記述したコマンドが実行されます。これによりシェルスクリプトで設定した終了コードが失われてしまいます。このため、.logoutファイルを以下の例のように変更する必要があります。

.logoutファイルの変更例

@ sts = $status 
if ( $?ENVIRONMENT == 0 ) then
          clear
          echo 'Bye Bye'
          if( `tty ` == '/dev/console') echo "" 
else
          exit($sts)
endif

ジョブとして指定したシェルスクリプト実行時の終了コードを一時変数stsに保存します。その後、ジョブ実行制御でジョブを実行する場合は、従来の処理を行わず、保存した終了コードで終了します。また、ジョブ実行制御でジョブを実行しない場合は、従来の処理を行います。

環境変数ENVIRONMENTに値“BATCH”を設定するかどうかによってジョブ実行制御配下でのジョブ実行とするかどうかを判断します。したがって、環境変数ENVIRONMENTに値“BATCH”を設定した場合は、ジョブ実行制御配下でのジョブ実行とみなされます。

ジョブの出力結果(前回履歴)に「Warning: no access to tty; thus no job control in this shell...」または「警告: ttyを使用できないため、このシェルでジョブ制御できません...」が出力されることについて

上記メッセージは、Cシェルが端末(tty)の属性を取得できない時に出力するものです。

Cシェルの仕様ですので、Operation Manager側で出力を抑止することはできません。

ジョブ実行制御では、ユーザがあたかもログインしてシェルスクリプトを実行したかのようにジョブを実行しています。

本来のログインでは端末を確保しますが、ジョブ実行制御は端末を確保しないため、Cシェルが端末の属性を取得できずに上記メッセージを出力します。

ジョブ実行制御から起動するシェルスクリプトが端末の属性に依存した処理を行わない限り、上記メッセージが出力される以外の影響はありません。