Управление Moonpool из командной строки
Повторный запуск moonpool.exe, пока этот же Moonpool уже работает, не открывает второе окно. Второй процесс передаёт свои аргументы работающему через его
канал управления и завершается. Moonpool должен уже работать:
если ничего не запущено, та же команда запускает новый Moonpool, а команда не выполняется.
«Тот же Moonpool» означает ту же папку. Установленный Moonpool и каждая портативная копия работают
независимо, поэтому команда доходит до той копии, чей moonpool.exe вы запустили, и никогда до другой.
См. Портативный режим.
Используйте путь к нужной копии. Для установленной:
$mp = "$env:USERPROFILE\.moonpool\moonpool.exe"Если работает несколько копий, Get-Process moonpool перечисляет их все, поэтому выбирайте по Path,
а не берите первую. Он также перечисляет простаивающие вспомогательные процессы moonpool.exe mcp, которые
запустили узлы MCP, так что наличие процесса moonpool не доказывает, что хаб работает. Вместо этого спросите канал управления
командой ping (Команды управления).
Команды
Заголовок раздела «Команды»Регистр команды не важен. <id> - это id приложения из apps.json.
| Команда | Действие |
|---|---|
moonpool.exe |
Без команды: выводит окно на передний план. |
moonpool.exe show |
Выводит окно на передний план. |
moonpool.exe launch <id> |
Запускает приложение и открывает его вкладку терминала. |
moonpool.exe stop <id> |
Останавливает приложение. |
moonpool.exe restart <id> |
Остановка, ожидание освобождения порта и процесса, запуск. |
moonpool.exe reload |
Заново читает apps.json. |
moonpool.exe refresh-icons |
Заново загружает все значки. |
moonpool.exe help |
Открывает окно «Справка». |
moonpool.exe quit |
Завершает Moonpool, как пункт меню трея. |
moonpool.exe dump <id> [out-path] |
Без out-path сообщает путь к журналу приложения за этот сеанс. С ним копирует журнал туда как обычный текст без кодов ANSI. |
moonpool.exe paths |
Сообщает папку конфигурации, apps.json, state.json, журнал, папку dumps, папку значков, признак портативного режима и путь к exe, которые использует работающий Moonpool. |
moonpool.exe read-config |
Записывает dumps\read-config.json в папке конфигурации с полями token, valid, error, path и manifest_text (точное содержимое apps.json). |
moonpool.exe write-config <file> [token] |
Заменяет apps.json манифестом из <file>, если манифест корректен и, когда указан token, apps.json всё ещё ему соответствует. |
moonpool.exe restore-config [index or filename] |
Без аргумента записывает список снимков в dumps\restore-config.json. С аргументом восстанавливает этот снимок, если он корректен. |
& $mp restart my-app& $mp dump my-app C:\temp\my-app.logНеизвестная команда игнорируется. У программы есть и собственные аргументы запуска:
moonpool.exe mcp (Настройка MCP), --uninstall (используется «Установкой и удалением
программ») и --wait-pid <pid> (используется, когда Moonpool перезапускает сам себя). Они учитываются
только как первый аргумент, поэтому id приложения вроде --uninstall не может их вызвать.
Чтение результата
Заголовок раздела «Чтение результата»Командная строка ничего не выводит, поэтому пометьте команду --ticket <key> (любой уникальный ключ, в
любой позиции) и прочитайте результат из state.json в папке конфигурации. Это
%USERPROFILE%\.moonpool\moonpool-config\ для установленной версии, <your .moonpool folder>\moonpool-config\
для портативной копии и ~/.config/Moonpool/ в Linux (см.
Обзор конфигурации). show и quit
тикет не записывают.
& $mp launch my-app --ticket t1В state.json есть apps, statuses (для каждого приложения id, running, managed, mcpRunning, mcpSeen)
и tickets. Работающий Moonpool перезаписывает его каждые пару секунд и после каждой
команды и не удаляет при выходе, поэтому оставшийся файл не означает, что Moonpool
работает. Чтобы узнать, работает ли он, или получить актуальный список приложений, используйте команды ping
и list канала управления (Команды управления) или инструменты MCP. Опрашивайте
свой тикет, пока status не перестанет быть pending:
status |
Значение |
|---|---|
pending |
Получено; Moonpool ещё выполняет. |
ok |
Готово. Для dump, read-config, write-config, restore-config и paths в detail лежит путь, токен или отчёт. |
error |
Сбой; detail объясняет причину, например unknown app id: x, did not reach running in time, unknown command. |
Каждый тикет имеет вид { ticket, action, arg, status, detail, ts }, где ts в миллисекундах Unix:
{ "ticket": "t1", "action": "launch", "arg": "my-app", "status": "error", "detail": "did not reach running in time", "ts": 1767225600000}Завершённые тикеты удаляются через 24 часа, а список сокращается примерно до 50 записей, когда завершённым тикетам не менее 5 минут.
Агент с поддержкой MCP может обойтись без опроса: см. Настройка MCP.
См. также
Заголовок раздела «См. также»Moonpool: бесплатное программное обеспечение от FasterDB