Это команда pegasus-exitcode, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
pegasus-exitcode - проверяет файлы stdout / stderr задания рабочего процесса на наличие каких-либо признаков
что в задании произошла ошибка. Этот сценарий предназначен для автоматического вызова
DAGMan как сценарий POST задания.
СИНТАКСИС
пегас-exitcode [-h][-r rv][-n][-s MSG][-f MSG] работа.out
ОПИСАНИЕ
пегас-exitcode - это утилита, которая проверяет STDOUT задания, чтобы определить,
не удалось, и переименовывает файлы STDOUT и STDERR задания, чтобы сохранить их на случай, если задание
повторяется.
Пегас использует пегас-exitcode как постскриптум DAGMan для вакансий, отправленных через Globus GRAM.
Этот инструмент существует как обходной путь к известной проблеме с Globus и Condor-G, когда
коды выхода заданий GRAM не возвращаются. Это проблема, потому что Pegasus использует
код выхода задания, чтобы определить, не удалось выполнить задание.
Чтобы обойти проблему с кодом выхода, Pegasus может оборачивать задания GRAM с помощью Kickstart,
который записывает код выхода задания в запись вызова XML, которую он записывает в
СТАНДАРТ РАБОТЫ. STDOUT передается с хоста выполнения обратно на хост отправки.
когда работа прекращается. После завершения задания DAGMan запускает постскриптум задания, который
Пегас собирается быть пегас-exitcode. пегас-exitcode смотрит на запись вызова
генерируется кикстартом, чтобы узнать, успешно или не удалось выполнить задание. Если запись вызова
указывает на сбой, то пегас-exitcode возвращает ненулевой результат, который указывает на
DAGMan, что задание не удалось. Если запись вызова указывает, что задание выполнено успешно,
тогда пегас-exitcode возвращает 0, что говорит DAGMan об успешном выполнении задания.
Кроме того, кластерные задания, выполняемые с пегас-кластер or Пегас-MPI-кластер будет
запись [cluster-summary] в их STDOUT. пегас-exitcode можете изучить эти записи, чтобы
определить, не удалось ли выполнить какую-либо из задач кластерного задания.
пегас-exitcode выполняет несколько проверок (некоторые необязательно), чтобы определить, не удалось ли выполнить задание
или не. Эти проверки включают:
1. Код выхода Condor не равен нулю? Если так, то задание не удалось.
2. STDOUT пуст? Если он пуст, значит задание не выполнено.
3. Есть ли сообщения об ошибках в STDOUT или STDERR? Если да, то задание не удалось.
4. Все сообщения об успешном выполнении находятся в STDOUT или STDERR? Если нет, значит, задание не выполнено.
5. Указывает ли запись [cluster-summary], что задание было успешным. Если нет, то
работа не удалась.
6. Есть ли теги с ненулевым значением? Если есть, значит, задание не выполнено.
Обратите внимание: если это кластерное задание, может быть несколько теги, один для
каждая задача. Если какой-либо из них отличен от нуля, то задание не выполнено.
7. Есть ли хоть один тег с нулевым значением? Должен быть хотя бы один
успешный вызов или задание не выполнено.
Помимо вышесказанного, пегас-exitcode позволяет вызывающему абоненту указать код выхода, возвращаемый Condor
используя --возвращение аргумент. Это можно передать пегас-exitcode в сообщении DAGMan
скрипт с помощью переменной $ RETURN. Если это значение не равно нулю, то пегас-exitcode
возвращает ненулевой результат перед выполнением любых других проверок. Для вакансий GRAM значение
$ RETURN всегда будет 0, независимо от того, завершилось задание сбой или нет.
Помимо проверки успешности / неудачи работы, пегас-exitcode также переименовывает
STDOUT и STDERR задания, так что если задание повторяется, STDOUT и STDERR из
предыдущий пробег не теряется. Он делает это, добавляя порядковый номер в конец
файлы. Например, если файл STDOUT называется "job.out", то в первый раз
работа выполняется пегас-exitcode переименует файл в "job.out.000". Если задание запускается снова,
тогда пегас-exitcode видит, что "job.out.000" уже существует, и переименовывает файл
"job.out.001". Он продолжит переименовывать файл, увеличивая порядковый номер.
каждый раз, когда задание выполняется.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
-h, --Помогите
Печатает сводку использования со всеми доступными параметрами командной строки.
-r rv, --возвращение rv
Возвращаемое значение, сообщенное DAGMan. Это можно указать в DAG с помощью $ RETURN
Переменная. Если это не ноль, то пегас-exitcode немедленно терпит неудачу с ненулевым
само возвращаемое значение. Если он равен нулю, просто поверните файл и не проверяйте
правильный вывод кикстарта. Эту опцию можно использовать в тех случаях, когда кикстарт невозможен.
используется (например, pegasus-create-dir) для включения ротации файлов.
-n, --без переименования
Не переименовывать работа.out и задание.ошибка в .out.XXX и .ошибка.XXX. Эта опция используется
в первую очередь для тестирования.
-f MSG, - сообщение об ошибке MSG
Сообщение об ошибке найти в задании stdout / stderr. Если это сообщение существует в
stdout / stderr задания, то задание будет считаться неудачным, несмотря ни на что.
другой выход существует. Если предоставлено несколько сообщений об ошибках, то ни одно из них не может
существуют в выходных данных, или задание считается неудачным.
-s MSG, --успешное сообщение MSG
Сообщение об успешном поиске в job stdout / stderr. Если этого сообщения нет в
stdout / stderr задания, то задание будет считаться неудачным, несмотря ни на что.
другой выход существует. Если предоставлено несколько сообщений об успешном завершении, все они должны
существуют в выходных данных, или задание считается неудачным.
АВТОРЫ
Гидеон Жюв[электронная почта защищена]>
Команда Пегаса http://pegasus.isi.edu
Используйте pegasus-exitcode онлайн с помощью сервисов onworks.net
