
Версия ОС: CentOS release 4.6 (Final) Ядро \r на \m 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 пользователя на исполняющем узле отличаются от UID и GID на отправляющем узле. В этом случае сначала проверьте, что директива #PBS -u указывает допустимого пользователя, затем проверьте, что идентификаторы пользователей совпадают:
$ id
whoami
uid=501(имя_пользователя) gid=501(имя_пользователя) groups=501(имя_пользователя) $ 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_сервердаже если вы уже работаете.
Вам не нужно добавлять сервер в/etc/hosts.equivесли вы отправляете задания на сервер, на котором запущенpbs_сервер.
решение3
Я знаю, что этот вопрос немного устарел, но недавно я столкнулся с этой проблемой и выполнил следующие шаги:
- Убедитесь, что UID и GID для рассматриваемого пользователя совпадают во всем кластере.
qmgr -c "set server flatuid=true"
qmgr -c "set server acl_roots+=username@*"
qmgr -c "set server operators+=username@*"
Здесь * — это подстановочный знак для всех хостов. Работает как по волшебству! Возможно, не очень безопасно, но определенно работает!
решение4
две процедуры:
добавьте ""+::::::"" в конец файла /etc/passwd
убедитесь, что узел, на котором пользователи отправляют задания, имеет все остальные узлы, четко определенные в файле /etc/hosts.equiv
ссылка: найдите Неверный UID для выполнения задания в руководстве администратора Torque в формате PDF.