cluster
Команды cluster запускают и останавливают сервер 1С — ragent, rmngr и rphost — на машине раннера Windows для базы, объявленной кластером под управлением раннера. Кластер службы или вашей консоли раннер только использует и не трогает его процессы.
cluster start
v8-runner cluster start
Запускает сервер 1С как приложение той же платформы, что выбирают остальные команды (tools.platform): агент ragent с реестром под localPath, затем сервер администрирования ras, и отдаёт ответ после того, как rac cluster list назвал кластер. Порт агента, regport и диапазон рабочих процессов раннер выбирает свободными вне динамического диапазона и закрепляет при первом запуске: реестр кластера хранит их все. Порт ras выбирается заново при каждом запуске. При dbms.managed команда первым шагом поднимает PostgreSQL, если он не работает. Кластер живёт между командами, пока его не остановит cluster stop. Запись о процессах и портах раннер держит под localPath: удаление workPath кластер не трогает. На Linux и macOS команда отказывает.
Если кластер уже запущен раннером этой копии, команда ничего не запускает и называет его; упавший ras поднимает заново. Остатки своего упавшего агента — rmngr и rphost — снимает по их PID и запускает кластер на прежних портах. Если закреплённый порт — regport, порт агента или порт диапазона — занят чужим процессом, команда сама делает то же, что --new-regport: новый реестр на свободных портах и регистрация базы над прежней БД. Чужой процесс остаётся работать, ответ называет прежний regport и предупреждает, кто занял порт. v8project*.yaml раннер не правит: адрес кластера берите из ответа cluster start или cluster status и не кешируйте. Если на порту работает чужой ragent над реестром этой копии или перечня процессов нет, команда отказывает без нового реестра. Пока работает свой автономный сервер этой базы, команда отказывает и называет standalone stop: одну БД держит один сервер.
v8-runner cluster start --dry-run
Показывает состояние, закреплённые адреса и каталог реестра, если кластер уже запускался. Ничего не запускает. Такое же превью есть у cluster stop и cluster restart. Команды cluster принимают только объявленную базу: строка соединения в --infobase — отказ.
v8-runner cluster start --new-regport
То же, что делает cluster start без ключа, когда закреплённые порты заняты чужим процессом, но явно: заводит новый реестр на свободных портах и регистрирует объявленную базу над прежней БД без её создания. UUID базы меняется, данные, поколение конфигурации и память раннера остаются. Если базы ещё не было, остаётся только новый реестр. Прежний реестр удаляется после регистрации и пробы базы, поэтому отказ на любом шаге ничего не теряет. При свободных портах ключ — отказ. Если на прежних портах работает чужой ragent над реестром этой копии, команда отказывает без нового реестра: такой реестр живой.
cluster status
v8-runner cluster status
Отвечает, запущен ли кластер этой копии: не запущен, запущен раннером или его порт занят не раннером. Для своего кластера называет PID агента и ras, версию платформы, адрес Srvr=, адреса агента и ras и ответил ли rac cluster list. Говорит, создана ли база в реестре. Называет и остатки упавшего агента, не трогая их. Клиент и Конфигуратор команда не запускает, замок рабочей копии ей не нужен, ключа --dry-run у неё нет.
cluster stop
v8-runner cluster stop
Останавливает кластер, который запустил раннер этой копии: сначала ras, он переживает агента, затем ragent с его рабочими процессами, и ждёт их завершения; снимает и остатки упавшего агента. Аварийные дампы, которые процессы платформы пишут при такой остановке, удаляет. Данные базы в СУБД и реестр остаются. PostgreSQL, поднятый шагом cluster start, гасит следом, а поднятый dbms start не трогает (таблица владения). Кластер службы или консоли не останавливает. Если кластера нет и гасить нечего, команда успешна.
cluster restart
v8-runner cluster restart
То же, что cluster stop и затем cluster start, для своего кластера. PostgreSQL не трогает.
Классы ответов
| Класс | Когда возникает и что означает |
|---|---|
| Кластер запущен | cluster start поднял ragent и ras, rac cluster list ответил. Пример |
| Состояние | cluster status называет свой кластер или говорит, что он не запущен. Пример |
| Остатки упавшего агента | Агент упал, его rmngr и rphost живы: cluster status их называет, cluster start и cluster stop снимают. Пример |
| Кластер остановлен | cluster stop завершил свои процессы. Пример |
| Порт занят | Закреплённый порт держит чужой процесс: cluster start завёл новый реестр, в ответе previous_regport, в предупреждении — кто занял порт. Пример |
| Новый реестр | cluster start --new-regport перенёс базу в реестр на новых портах. Пример |
| Нет серверных компонентов | На машине нет ragent выбранной платформы или это Linux либо macOS: environment_unavailable, выход CLI 2. Пример |
Причины отказов и различия между ошибкой команды, ошибкой шага и диагностикой запуска — в словаре ответов.
Варианты ответа
Кластер запущен
cluster start: started the cluster 8.5.4.2028, ragent pid 6312
connection Srvr=127.0.0.1:46761;Ref=demo
agent 127.0.0.1:46760
ras 127.0.0.1:25425
worker range 46762:46777
ras pid 16980
rac cluster list answers
infobase not created yet: run infobase create
registry .local/infobases/origin/managed/cluster/registry-46761
log .local/infobases/origin/managed/cluster/cluster.log
Состояние своего кластера
cluster status: origin: cluster 8.5.4.2028, started by this working copy, ragent pid 6312
connection Srvr=127.0.0.1:46761;Ref=demo
agent 127.0.0.1:46760
ras 127.0.0.1:25425
worker range 46762:46777
ras pid 16980
rac cluster list answers
infobase created
registry .local/infobases/origin/managed/cluster/registry-46761
log .local/infobases/origin/managed/cluster/cluster.log
Остатки упавшего агента
cluster status: origin: the cluster is not running
connection Srvr=127.0.0.1:46761;Ref=demo
infobase created
remnants 4644
the recorded process is gone
Кластер остановлен
cluster stop: ragent pid 6312, ras pid 16980 stopped
PostgreSQL stopped pid 15604
Порт занят
cluster start: started the cluster 8.5.4.2028, ragent pid 11160
connection Srvr=127.0.0.1:46793;Ref=demo
agent 127.0.0.1:46792
ras 127.0.0.1:25425
worker range 46794:46809
ras pid 10884
rac cluster list answers
infobase created
previous regport 46761
registry .local/infobases/origin/managed/cluster/registry-46793
log .local/infobases/origin/managed/cluster/cluster.log
warning: port 46761 of the cluster of 'origin' is taken by process 9008, which this runner did not start; it is left running: the cluster moved to a new registry on regport 46793, the infobase is registered there again over its database (its id in the registry is new); take the address from this answer, v8project*.yaml is not changed
Новый реестр
cluster start: started the cluster 8.5.4.2028, ragent pid 11160
connection Srvr=127.0.0.1:46793;Ref=demo
agent 127.0.0.1:46792
ras 127.0.0.1:25425
worker range 46794:46809
ras pid 10884
rac cluster list answers
infobase created
previous regport 46761
registry .local/infobases/origin/managed/cluster/registry-46793
log .local/infobases/origin/managed/cluster/cluster.log
Нет серверных компонентов
ERROR: environment unavailable: utility 'ragent' was not found: version 8.3.27.2074 is installed (8.3.27.2074) but has no 1C:Enterprise server; no version has 1C:Enterprise server