ジョブステータスが「Eqw」となり実行されない。

システムの障害の可能性もありますがジョブスクリプトのミスによることがあります。以下の点をご確認ください。

ジョブの詳細状況は以下のコマンドで確認ができます。

$ qstat -j  <ジョブID> | grep error

確認後、「Eqw」ステータスのジョブは qdel で削除してください。
原因の切り分けと修正を行いジョブを再投入してください。

エラーの場合の例を以下にあげます。
ファイルパーミッションがない場合のエラー例
error reason    1:          エラー発生時間 [5226:17074]: error: can't open stdout output file "<原因のファイル>": Permission denied

改行コードの問題やディレクトリが存在しないおよびジョブスクリプトが不正な場合のエラー例
error reason    1:          エラー発生時間 [5378:990988]: execvp(/var/spool/uge/<ホスト名>/job_scripts/<ジョブID>, "/var/spool/uge/<ホスト名>/job_scripts/<ジョブID>") failed: No such file or directory

1. ジョブスクリプトの改行コードがUNIX形式(LF)でない
改行コードがwindowsのCR+LFに設定されている場合も発生いたしますので、実際のスクリプトで合わせてご確認ください。
以下のコマンドで確認ができます。

$ file <スクリプトファイル名>
#CR+LFの場合の出力
<スクリプトファイル名>: ASCII text, with CRLF line terminators
#LFの場合の出力
<スクリプトファイル名>: ASCII text

catコマンドでも確認ができます
$ cat -e <スクリプトファイル名>
#CR+LFの場合の出力
行末が^M$と表示されます。
#!/bin/bash^M$
#$ -cwd^M$
#$ -l f_node=1^M$
#$ -l h_rt=0:10:00^M$
./etc/profile.d/modules.sh^M$
module load intel^M$

#LFの場合の出力
行末が$と表示されます。
#!/bin/bash$
#$ -cwd$
#$ -l f_node=1$
#$ -l h_rt=0:10:00$
./etc/profile.d/modules.sh$
module load intel$

改行コードの対策としては、以下があります。

  • Windowsでスクリプトを編集しない
  • Windowsでスクリプトを編集する場合は改行コードに対応したエディタを利用し、改行コードを必ず確認する
  • nkfで実行前に改行コードをLFに修正する
    • LF以外であった際は下記のコマンドで修正ください。
      $ nkf -Lu <スクリプトファイル名> > <スクリプトファイル名2> 
       

2. 実行するディレクトリなどが存在しない

ジョブスクリプトで記述されている実行ディレクトリが存在しない場合に発生します。以下のコマンドで確認ください。
確認後、スクリプトを適切に修正下さい。

$ qstat -j  <ジョブID> | grep ^error

error reason    1:          09/13/2017 12:00:00 [2222:19999]: error: can't chdir to /gs/hs0/test-g/user00/no-dir: No such file or directory

 

3. バックグラウンドジョブ("&"付き)でジョブスクリプトが記載されている

以下の様にバックグラウンドジョブ("&"付き)で記載し投入された場合、実行されません。

例)

#!/bash/sh
#$ -cwd
#$ -l f_node=1
#$ -l h_rt=1:00:00
#$ -N test

./etc/profile.d/modules.sh

module load intel

./a.out &

4. ファイルパーミッションが無い
プログラムが利用するファイルに適切なパーミッションを設定下さい。