
OS バージョン: CentOS リリース 4.6 (最終) カーネル 2.6.9-100.ELsmp
ジョブを実行しようとすると、次のようなエラーが発生します。
qsub: Bad UID for job execution
新しいユーザー アカウントを作成しましたが、同じエラーが発生しますが、同じマシン上の他のユーザーは問題なくジョブを実行できます。
この問題を解決するにはどうすればいいでしょうか?
答え1
手順はこちら:http://www.bo.infn.it/alice/introgrd/pbsabout/node18.html間違ったユーザーとして実行している可能性があります。
Invalid user in #PBS -u new-user $ qsub sube.cmd qsub: Bad UID for job execution
ユーザー リストで定義されているユーザー名が未定義であるか、ジョブ送信者のユーザー名と異なるか、実行ノードのユーザー UID と GID が送信ノードのものと異なります。この場合、まず #PBS -u ディレクティブが有効なユーザーを指定していることを確認し、次にユーザー ID が同じであることを確認します。
$ id
whoami
uid=501(myusrname) gid=501(myusrname) groups=501(myusrname) $ grep -e "PBS -u" cpbs.cmdPBS -u alice001 $ id alice001 uid=10417(alice001) gid=1395(alice) groups=1395(alice)
必要に応じて #PBS -u を変更します。
答え2
ホストを追加する/etc/hosts.equiv問題は解決しました。
しかし、すでにこれらの行を に追加していましたqmgr
。
set server operators += [email protected]
set server acl_users += username
set server managers += [email protected]
set server acl_hosts += servername.local
set server operators += [email protected]
それから私は をしました/etc/init.d/pbs_server restart
。
再起動することができますpbs_serverすでに実行している場合でも、
サーバーを追加する必要はありません/etc/hosts.equivを実行しているサーバー上でジョブを送信する場合pbs_server。
答え3
この質問は少し古いですが、最近この問題に遭遇し、次の手順を実行しました。
- 問題のユーザーのUIDとGIDがクラスタ全体で一致していることを確認する
qmgr -c "set server flatuid=true"
qmgr -c "set server acl_roots+=username@*"
qmgr -c "set server operators+=username@*"
ここで * はすべてのホストに対するワイルドカードです。うまく機能します! おそらく非常に安全ではありませんが、確実に機能します!
答え4
2つの手順:
/etc/passwdファイルの末尾に「+::::::」を追加します
ユーザーがジョブを送信するノードが、/etc/hosts.equiv ファイルで他のすべてのノードと適切に定義されていることを確認します。
参考: Torque 管理ガイド pdf で「Bad UID for job execution」を検索します。