
Betriebssystemversion: CentOS Release 4.6 (Final) Kernel \r auf einem \m 2.6.9-100.ELsmp
Beim Versuch, einen Job auszuführen, wird mir der folgende Fehler angezeigt.
qsub: Bad UID for job execution
Ich habe ein neues Benutzerkonto erstellt und derselbe Fehler tritt auf. Andere Benutzer auf derselben Maschine können jedoch problemlos Jobs ausführen.
Wie kann ich dieses Problem beheben?
Antwort1
Anleitung hier:http://www.bo.infn.it/alice/intrord/pbsabout/node18.htmlschlage vor, dass Sie es als falscher Benutzer ausführen.
Invalid user in #PBS -u new-user $ qsub sube.cmd qsub: Bad UID for job execution
Der in der Benutzerliste definierte Benutzername ist entweder nicht definiert oder unterscheidet sich vom Benutzernamen des Jobübermittlers, oder die Benutzer-UID und -GID des ausführenden Knotens unterscheiden sich von denen des übermittelnden Knotens. Überprüfen Sie in diesem Fall zunächst, ob die Direktive #PBS -u einen gültigen Benutzer angibt, und überprüfen Sie dann, ob die Benutzer-IDs identisch sind:
$ id
whoami
uid=501(meinBenutzername) gid=501(meinBenutzername) groups=501(meinBenutzername) $ grep -e "PBS -u" cpbs.cmdPBS -u alice001 $ id alice001 uid=10417(alice001) gid=1395(alice) groups=1395(alice)
und ändern Sie #PBS -u entsprechend.
Antwort2
Hinzufügen des Hosts zum/etc/hosts.equivhat mein Problem behoben.
Aber ich hatte diese Zeilen bereits hinzugefügt 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]
Dann habe ich ein gemacht /etc/init.d/pbs_server restart
.
Sie können denpbs_serverauch wenn Sie bereits laufen.
Sie müssen den Server nicht hinzufügen zu/etc/hosts.equivwenn Sie Aufträge auf dem Server übermitteln, auf dem diepbs_server.
Antwort3
Ich weiß, dass diese Frage schon etwas älter ist, aber ich bin vor Kurzem auf dieses Problem gestoßen und habe die folgenden Schritte ausgeführt:
- Stellen Sie sicher, dass die UID und GID für den betreffenden Benutzer im gesamten Cluster übereinstimmen.
qmgr -c "set server flatuid=true"
qmgr -c "set server acl_roots+=username@*"
qmgr -c "set server operators+=username@*"
Hier ist * ein Platzhalter für alle Hosts. Funktioniert einwandfrei! Wahrscheinlich nicht supersicher, aber funktioniert auf jeden Fall!
Antwort4
zwei Verfahren:
fügen Sie am Ende der Datei /etc/passwd ""+::::::"" hinzu
Stellen Sie sicher, dass der Knoten, an den Benutzer Jobs übermitteln, alle anderen Knoten in der Datei /etc/hosts.equiv gut definiert hat
Referenz: Suchen Sie im PDF-Dokument „Torque-Administratorhandbuch“ nach einer ungültigen UID für die Jobausführung.