8.1.6 UNIXジョブの注意事項
UNIXジョブ使用時の注意事項を次に示します。
- UNIXで実行したジョブで設定できる終了コードの値は0~255です。ジョブの起動失敗や,標準出力データまたは標準エラー出力データの取得に失敗した場合は,終了コードは-1となります。
- UNIX版JP1/AJS2を使用すると,ジョブの状態が「起動失敗」になることがあります。この場合,次に示すファイルおよび格納先ディレクトリに,JP1/AJS2サービスの起動ユーザーおよびジョブの実行OSユーザーの書き込み権限および読み込み権限があるかどうかを確認してください。アクセスできない場合は,JP1/AJS2サービスの起動ユーザーおよびジョブの実行OSユーザーでアクセスできるように,ファイルおよび格納先ディレクトリに書き込み権限および読み込み権限を設定するか,または格納先ディレクトリをアクセス権があるディレクトリに変更してください。
- ジョブの標準出力ファイル
- ジョブの標準エラー出力ファイル
- エージェントプロセス実行時のワークディレクトリ
- ジョブの詳細定義で指定するワークパス※1
- 実行OSユーザーのホームディレクトリ※1
- ジョブ実行制御のログファイル※2
- 注※1
- ジョブの詳細定義で指定するワークパスは,ジョブを実行するときのカレントディレクトリです。省略した場合,実行OSユーザーのホームディレクトリが仮定されます。ホームディレクトリが未定義の場合は「/(ルート)」が仮定されます。
- 注※2
- ジョブ実行制御で使用するログファイルの詳細については,「17.2.4 ログファイルおよびディレクトリ一覧」を参照してください。
- UNIX版JP1/AJS2では,JP1/AJS2起動時のリソース制限値がジョブ実行時にも有効になります。ただし,実行するジョブに制限値を指定した場合は,指定した値が有効になります。詳細については,マニュアル「JP1/Automatic Job Management System 2 セットアップガイド 14.2.2 マネージャー環境(JP1/AJS2 - Manager)で設定する内容」,またはマニュアル「JP1/Automatic Job Management System 2 セットアップガイド 14.2.3 エージェント環境(JP1/AJS2 - Agent)で設定する内容」を参照してください。
- 注意
- AIXおよびLinuxの場合,ジョブの実行ユーザーに対して,/etc/security/limits(Linuxの場合は/etc/security/limits.conf)でリソースの制限値の定義をしても,ジョブ実行時に値は有効になりません。JP1/AJS2起動時のユーザー(root)に対してリソース制限値を定義してください。詳細については,「8.1.18 UNIXジョブ実行時のリソース制限値についての注意事項」を参照してください。
- JP1/AJS2サービスから起動するジョブプロセスのumask値は,特に明示的な指定がなければ,JP1/AJS2サービスを起動するシェルのumask値になります。
/etc/profileや$HOME/.profileなど,ジョブ実行ユーザーのプロファイルで指定している場合は,JP1/AJS2サービス起動シェルのumask値にその値を上書きした値が設定されます。
ジョブプロセスのumask値は,ジョブ実行ユーザーのプロファイルや,実行シェル内で明示的に設定してください。
また,ジョブの定義で指定する「標準出力ファイル」および「標準エラー出力ファイル」のumask値を変更する場合は,「8.2.8 標準出力ファイル名・標準エラー出力ファイルのumask値(UNIX限定)」を参照してください。
- JP1/AJS2からジョブを起動した場合,JP1/AJS2が明示的に環境変数PATHに「/bin:/usr/bin」を設定しています。それ以外の値を設定したい場合はジョブ定義時に指定したコマンドやスクリプトファイルでの定義,またはローカルログインスクリプトでの定義で設定するようにしてください。
- JP1/AJS2サービスを自動起動している場合,rootユーザーのログインプロファイルは読み込みません。そのため,ログインプロファイルでrootユーザーのリソース制限値を変更しても,手動でログインしてJP1/AJS2サービスを起動した際に設定されるリソース制限値と値が異なることがあります。
なお,JP1/AJS2サービスを自動起動している場合は,「8.2.12 ジョブ実行時のグループID(UNIX限定)」もあわせて参照してください。
- UNIX版JP1/AJS2で端末を必要とするユーザープログラムをジョブとして実行すると,正しく動作しない(ジョブが異常終了する)場合があります。
- キューレスジョブ使用時にログインシェルなどのOSユーザー情報を変更した場合は,次のどちらかの手順でキャッシングを消去してください。
- ajsqlalterコマンドを,-rオプションを指定して実行する。
- キューレスエージェントサービスを再起動する。
- ジョブ実行中に,スーパーユーザー権限でpasswdコマンドを実行するなど,OSユーザーの登録または更新はしないでください。OSユーザーの登録または更新は,ジョブの実行前に実施してください。
なお,UNIXジョブが起動失敗の状態になったり,異常終了したりする場合の要因や注意事項については,「17.5.3 標準ジョブ,アクションジョブ,およびカスタムジョブの実行について」もあわせて参照してください。