Systemwalker Operation Manager 使用手引書 - UNIX共通 - - Microsoft(R) Windows(R) 2000/Windows Server(TM) 2003 - |
目次 索引 |
付録B 留意事項 | > B.5 ジョブの実行に関して知っていただきたいこと |
ジョブ実行制御は、ジョブ投入者のログインシェル(パスワードエントリに登録されている情報)をジョブ起動時に使用していますが、ログインシェルがCシェルの場合、以下の注意が必要です。
ジョブ投入者のホームディレクトリに、.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”を設定した場合は、ジョブ実行制御配下でのジョブ実行とみなされます。
上記メッセージは、Cシェルが端末(tty)の属性を取得できない時に出力するものです。
Cシェルの仕様ですので、Operation Manager側で出力を抑止することはできません。
ジョブ実行制御では、ユーザがあたかもログインしてシェルスクリプトを実行したかのようにジョブを実行しています。
本来のログインでは端末を確保しますが、ジョブ実行制御は端末を確保しないため、Cシェルが端末の属性を取得できずに上記メッセージを出力します。
ジョブ実行制御から起動するシェルスクリプトが端末の属性に依存した処理を行わない限り、上記メッセージが出力される以外の影響はありません。
目次 索引 |