Q.5
コマンドプロンプトから実行すると正常終了するが、JobCenterのジョブとして実行するとエラーになる。A.5
このような現象には次のような原因が考えられます。
• ジョブの実行ユーザが異なる。
ジョブの実行ユーザは通常、ジョブの投入ユーザと一致しますが、ユーザマッピングの機能を使用し ているとジョブを投入したユーザと実行するユーザが異なることがあります。
• ジョブ実行時に設定されている環境変数が異なる。
起動されるプロセスには、特定の環境変数の設定必要とするものがあります。問題となっているプロ セスを起動する前に、環境変数を表示させるコマンドを挿入し、必要な環境変数が設定されているか 確認してください。
• ジョブ実行時のカレントディレクトリが異なる。
コマンドやファイルのパスを相対パスで記述していると参照できないことがあります。そのような場 合は、ジョブ実行時のカレントディレクトリを確認するか、絶対パスで記述してください。
• 標準入力を使用するプロセス
JobCenter は標準入力をクローズした状態でジョブを起動しますので、標準入力がオープンされた状 態で実行されることを期待しているプロセスは動作しないことがあります。この場合、次のどちらか の対処が必要です。
・標準入力を読み込まないようにする
・JobCenterのShell Strategyの設定をFREEにする。
設定方法については、「JobCenter NQS機能利用の手引き」を参照してください。
Q.6
JobCenter から起動したジョブを強制停止、スキップなどを行っても、ジョブから起動したプロセスが終 了しないことがある。A.6
JobCenter はジョブのプロセスをプロセスグループという単位で管理しています。強制停止や、スキップ などを行うとJobCenterはジョブのプロセスグループ対してSIGKILLを送信し、プロセスグループ内の全 プロセスを強制終了させます。しかし、新しいプロセスグループを生成するようなプロセスを実行してい る場合は、JobCenterの管理対象外となりますので、そのプロセスを終了させることはできません。
Q.7
JobCenterからシステムを停止するコマンド実行したい。A.7
JobCenter はデフォルトの設定の場合、マシンリブート時にマシン停止前に実行中であったジョブを再実 行します。shutdownコマンドなどのコマンドをJobCenterのジョブとして実行すると、マシン起動するた びにJobCenterからshutdownコマンドが実行され、永久にシステムが起動しないという状態に陥る危険 性がありますので、このようなコマンドはJobCenterのジョブとしては実行してはいけません。
どうしても実行する必要がある場合は、最低限次の対処を行ってください。
(a) ジョブのパラメータで、リスタート属性をDISABLEに設定し、ジョブが再実行されないように してください。
(b) 新しいプロセスグループを生成し、そのプロセスグループでshutdownコマンドを実行してくだ さい。また、shutdownコマンド起動後、ジョブは速やかに終了させてください。
(c) shutdownコマンド起動後、実際に停止処理が開始されるまで十分に時間をとってください。
Q.8
rebootコマンドでシステムを停止させると、再起動時、ジョブのステータスが異常になることがある。A.8
reboot コマンドは、通常のシステム停止の手順を行わず、動作中のプロセスを強制終了させて、システム
を再起動させることがあります。このような場合、JobCenter は停止処理を行えず強制終了させられます ので、ジョブのステータスファイルを更新することができないため、再起動時に異常なステータスで表示 されることがあります。
Q.9
スクリプトの記述方法A.9
ジョブから起動するスクリプトは、JobCenter が解釈しているのではなく、シェル(コマンドインタプリ タ)が構文解析し、実行しています。スクリプトの記述方法や文法については、各シェルのマニュアルを 参照してください。
Q.10
ジョブ実行時に設定される環境変数(.profile, .cshrcなど)A.10
JobCenterは、ジョブ実行開始時に、シェルを起動しますが、これはログインシェルではありません。よっ て、cshを使用した場合は、~/.cshrcは読み込まれますが、shを使用した場合、~/.profile は読み込まれな いという現象が発生します。この違いは、シェルの仕様によるもですので、JobCenter の設定でこれら挙 動を変更することはできません。ジョブを実行するシェルを変更するか、ジョブのスクリプトに直接必要 な内容を記述してください。
Q.11
スケジュール投入時に設定される環境変数A.11
ジョブネットワークをスケジュール起動させた場合、ジョブ実行時に設定される環境変数は、最後にスケ ジュールを編集したとき、そのユーザに設定されていた環境変数が復元され、ジョブ実行時に設定されま す。
Q.12
ACOSやSXのNQSとJobCenterとの間でジョブ連携を行おうとしているが、JobCenterからACOSま たはSX側へのNQSへのジョブ投入がうまく行えない。A.12
JobCenterをACOSまたはSXのNQSとジョブ連携を行えるようにするためは、JobCenter側のNQSの モードをNEC拡張モードからCOSMICモードに変更する必要があります。
JobCenterの導入されているマシン上で、nmapmgrコマンドを使用して、JobCenter側のNMAPLISTに登 録されている連携対象のホスト(ACOSまたはSX)のマシンタイプを変更してください。
echo "set type <マシンID> cos" | nmapmgr 備考 <マシンID>は、ACOSまたはSXのマシンIDです。
詳細については、「JobCenter NQS機能利用の手引き 第8章 JobCenterシステム管理者コマンド一覧 nmapmgrコマンド」を参照してください。