Difference between revisions of "Serve.cfg:global:run dir"
(Created page with "Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/[[serve...") |
|||
Line 33: | Line 33: | ||
* Подкаталог <tt>status</tt> используется для передачи информации от программы <tt>run</tt> к программе <tt>serve</tt>. В этот каталог программа <tt>run</tt> помещает небольшой файл с информацией о результате тестирования (так называемый «пакет результата тестирования»). Программа <tt>serve</tt> периодически просматривает данный каталог и при появлении в нём новых файлов обновляет своё внутреннее состояние. Поскольку каталог может использоваться одновременно несколькими программами <tt>run</tt> и одной программой <tt>serve</tt>, он имеет специальную структуру для предотвращения синхронизационных ошибок. | * Подкаталог <tt>status</tt> используется для передачи информации от программы <tt>run</tt> к программе <tt>serve</tt>. В этот каталог программа <tt>run</tt> помещает небольшой файл с информацией о результате тестирования (так называемый «пакет результата тестирования»). Программа <tt>serve</tt> периодически просматривает данный каталог и при появлении в нём новых файлов обновляет своё внутреннее состояние. Поскольку каталог может использоваться одновременно несколькими программами <tt>run</tt> и одной программой <tt>serve</tt>, он имеет специальную структуру для предотвращения синхронизационных ошибок. | ||
− | * Подкаталог <tt>report</tt> используется для передачи информации от программы <tt>run</tt> к программе <tt>serve</tt>. В этот каталог программа <tt>run</tt> помещает судейский вариант протокола тестирования. Каталог может использоваться одновременно несколькими программами <tt>run</tt> и одной программой < | + | * Подкаталог <tt>report</tt> используется для передачи информации от программы <tt>run</tt> к программе <tt>serve</tt>. В этот каталог программа <tt>run</tt> помещает судейский вариант протокола тестирования. Каталог может использоваться одновременно несколькими программами <tt>run</tt> и одной программой <tt>serve</tt>, но синхронизация доступа ведётся с помощью каталога <tt>status</tt>, поэтому никакой дополнительной синхронизации в каталоге <tt>report</tt> не требуется. |
− | * Подкаталог <tt>teamreport</tt> используется для передачи информации от программы </tt>run</tt> к программе </tt>serve</tt>. В этот каталог программа <tt>run</tt> помещает пользовательский вариант протокола тестирования, если эта опция включена в конфигурационном файле турнира. | + | * Подкаталог <tt>teamreport</tt> используется для передачи информации от программы </tt>run</tt> к программе </tt>serve</tt>. В этот каталог программа <tt>run</tt> помещает пользовательский вариант протокола тестирования, если эта опция включена в конфигурационном файле турнира. Каталог может использоваться одновременно несколькими программами <tt>run</tt> и одной программой <tt>serve</tt>, но синхронизация доступа ведётся с помощью каталога status, поэтому никакой дополнительной синхронизации в каталоге <tt>teamreport</tt> не требуется. |
− | Каталог может использоваться одновременно несколькими программами <tt>run</tt> и одной программой <tt>serve</tt>, но синхронизация доступа ведётся с помощью каталога status, поэтому никакой дополнительной синхронизации в каталоге <tt>teamreport</tt> не требуется. | ||
* Символическая ссылка <tt><nowiki><номер></nowiki></tt>, где <tt><nowiki><номер></nowiki></tt> — четырёхзначный идентификатор турнира. Эта символическая ссылка создаётся в каталоге, задаваемом переменной <tt>run_dir</tt>, программы <tt>run</tt>, и указывает на каталог, задаваемый переменной <tt>compile_dir</tt>, программы <tt>serve</tt>. Если эти каталоги совпадают, символическая ссылка указывает на каталог, в котором она находится. С помощью этой символической ссылки программа <tt>run</tt> может обслуживать одновременно несколько турниров, записывая результаты тестирования в каталог обмена только соответствующего турнира. | * Символическая ссылка <tt><nowiki><номер></nowiki></tt>, где <tt><nowiki><номер></nowiki></tt> — четырёхзначный идентификатор турнира. Эта символическая ссылка создаётся в каталоге, задаваемом переменной <tt>run_dir</tt>, программы <tt>run</tt>, и указывает на каталог, задаваемый переменной <tt>compile_dir</tt>, программы <tt>serve</tt>. Если эти каталоги совпадают, символическая ссылка указывает на каталог, в котором она находится. С помощью этой символической ссылки программа <tt>run</tt> может обслуживать одновременно несколько турниров, записывая результаты тестирования в каталог обмена только соответствующего турнира. |
Revision as of 09:35, 10 February 2012
Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Глобальные конфигурационные параметры/run_dir
Имя переменной: | run_dir | |
Содержится в: | global | |
Используется: | serve, run | |
Тип содержимого: | путь к каталогу | |
Может отсутствовать: | да | |
Значение по умолчанию: | run | |
Может повторяться: | нет |
Описание. Данная переменная задаёт каталоги обмена между программами serve и run. Полный путь к этому каталогу определяется по следующим правилам:
- Если значение переменной run_dir не задано, используется значение run.
- Если значение переменной run_dir начинается с символа ’/’, то есть значение переменной задаёт полный абсолютный путь к каталогу скриптов, этот путь используется без изменений.
- Если значение переменной run_dir не начинается с символа ’/’, полный путь к каталогу скриптов образуется конкатенацией значения переменной var_dir и значения переменной run_dir.
Каталог обмена содержит в себе несколько подкаталогов, назначение которых описывается ниже.
- Подкаталог queue используется для передачи информации от программы serve к программе run. Программа serve помещает в этот каталог небольшие файлы, содержащие служебную информацию о программе, которую необходимо протестировать (так называемый «пакет задания тестирования»). Программа run периодически просматривает этот каталог и при появлении в нём новых пакетов задания тестирования выполняет их. Этот каталог может использоваться совместно несколькими программами serve, обслуживающими разные турниры, и несколькими программами run, например, работающими на разных компьютерах в сети. Этот каталог имеет специальную структуру, чтобы предотвратить синхронизационные ошибки при одновременном доступенескольких программ.
- Подкаталог exe используется для передачи информации от программы serve к программе run. Программа serve помещает в этот каталог исполняемый файл программы, которую необходимо протестировать. Исполняемый файл программы имеет то же самое имя, что и пакет задания тестирования для этой программы. Программа run считывает исполняемый файл после файла пакета задания компиляции. Этот каталог может использоваться совместно несколькими программами serve, обслуживающими разные турниры, и несколькими программами run. Синхронизация доступа поддерживается в каталоге queue, поэтому никакой дополнительной синхронизации в каталоге exe не требуется.
- Подкаталог status используется для передачи информации от программы run к программе serve. В этот каталог программа run помещает небольшой файл с информацией о результате тестирования (так называемый «пакет результата тестирования»). Программа serve периодически просматривает данный каталог и при появлении в нём новых файлов обновляет своё внутреннее состояние. Поскольку каталог может использоваться одновременно несколькими программами run и одной программой serve, он имеет специальную структуру для предотвращения синхронизационных ошибок.
- Подкаталог report используется для передачи информации от программы run к программе serve. В этот каталог программа run помещает судейский вариант протокола тестирования. Каталог может использоваться одновременно несколькими программами run и одной программой serve, но синхронизация доступа ведётся с помощью каталога status, поэтому никакой дополнительной синхронизации в каталоге report не требуется.
- Подкаталог teamreport используется для передачи информации от программы run к программе serve. В этот каталог программа run помещает пользовательский вариант протокола тестирования, если эта опция включена в конфигурационном файле турнира. Каталог может использоваться одновременно несколькими программами run и одной программой serve, но синхронизация доступа ведётся с помощью каталога status, поэтому никакой дополнительной синхронизации в каталоге teamreport не требуется.
- Символическая ссылка <номер>, где <номер> — четырёхзначный идентификатор турнира. Эта символическая ссылка создаётся в каталоге, задаваемом переменной run_dir, программы run, и указывает на каталог, задаваемый переменной compile_dir, программы serve. Если эти каталоги совпадают, символическая ссылка указывает на каталог, в котором она находится. С помощью этой символической ссылки программа run может обслуживать одновременно несколько турниров, записывая результаты тестирования в каталог обмена только соответствующего турнира.
Пример. С помощью задания каталога обмена можно добиться того, что несколько одновременно работающих серверов турнира будут использовать одну программу тестирования run. Для этого создаётся отдельный каталог для программы run, например /var/ejudge/run. Этот каталог указывается в качестве корневого в конфигурационном файле программы run c помощью строки
root_dir = /var/ejudge/run
Программа run запускается в каталоге /var/ejudge/run. Теперь во всех конфигурационных файлах серверов турниров для использования этой программы тестирования достаточно установить переменную run_dir в следующее значение:
run_dir = /var/ejudge/run/var/compile