[{"data":1,"prerenderedAt":182},["ShallowReactive",2],{"app-ru-process-manager":3,"cats-ru":100,"mdc--pzsl6m-key":122},{"id":4,"body":5,"category":82,"extension":83,"featured":84,"header":85,"meta":97,"slug":68,"stem":98,"__hash__":99},"apps\u002Fru\u002Fapps\u002Fprocess-manager.yml",[6,29,45,57,62,73],{"name":7,"type":8,"args":9},"Возможности","features",{"items":10},[11,14,17,20,23,26],{"title":12,"description":13},"Конфигурация в стиле docker-compose","Описывайте сервисы в pm.yaml — команда, переменные окружения, depends_on, рабочая директория, политика перезапуска.",{"title":15,"description":16},"Интерактивный TUI","Навигация по сервисам, запуск\u002Fостановка\u002Fперезапуск по отдельности или всех сразу. Управление с клавиатуры.",{"title":18,"description":19},"Режим демона","pm up запускает фоновый демон. Сервисы продолжают работать после выхода из TUI.",{"title":21,"description":22},"Логи по сервисам","pm logs \u003Cсервис> показывает вывод. Добавьте -f для потоковой трансляции.",{"title":24,"description":25},"Политики перезапуска","no, on-failure или always. Экспоненциальная задержка: от 1с до 32с.",{"title":27,"description":28},"Горячая перезагрузка","pm reload подхватывает изменения конфига без перезапуска работающих сервисов.",{"name":30,"type":31,"args":32},"Использование","code",{"commands":33},[34,35,36,37,38,39,40,41,42,43,44],"pm                  # запустить TUI (по умолчанию)","pm up               # запустить все сервисы","pm up api db        # запустить выбранные","pm stop             # остановить все","pm stop api         # остановить выбранный","pm restart          # перезапустить все","pm status           # таблица статусов","pm logs api         # логи сервиса","pm logs api -f      # следить за логами","pm reload           # перезагрузить конфиг","pm shutdown         # остановить демон",{"name":46,"type":31,"args":47},"Клавиши TUI",{"commands":48},[49,50,51,52,53,54,55,56],"↑\u002F↓ или k\u002Fj   Навигация по сервисам","s \u002F Enter      Запустить выбранный","x              Остановить выбранный","r              Перезапустить выбранный","a              Запустить все","z              Остановить все","R (shift)      Перезагрузить конфиг","q              Выход из TUI (сервисы продолжают работать)",{"name":58,"type":59,"args":60},"Пример конфигурации","markdown",{"content":61},"Создайте `pm.yaml` в корне проекта:\n\n```yaml\nservices:\n  web:\n    command: python3 -m http.server 8080\n    environment:\n      PYTHONUNBUFFERED: \"1\"\n    depends_on:\n      - logger\n    restart: on-failure\n\n  logger:\n    command: bash -c \"while true; do echo heartbeat; sleep 5; done\"\n```\n\nВсе поля кроме `command` опциональны. `working_dir` по умолчанию — директория конфига.\n",{"name":63,"type":64,"args":65},"Теги","tags",{"tags":66},[67,68,69,70,71,72],"rust","process-manager","docker-compose","tui","daemon","cli",{"name":74,"type":75,"args":76},"История версий","changelog",{"entries":77},[78],{"date":79,"version":80,"text":81},"2026-04-19","v0.1.0","Первый релиз — демон, TUI, YAML-конфиг, политики перезапуска, логи по сервисам","dev-tools","yml",true,{"name":86,"tagline":87,"description":88,"platforms":89,"installCommand":91,"links":92,"requirements":95,"screenshot":96},"pm","Менеджер процессов в стиле docker-compose с TUI-панелью. Запускает любые команды.","YAML-конфиг, порядок зависимостей, политики перезапуска, интерактивный TUI, демон, логи по сервисам.",[90],"Linux","curl -fsSL appcrate.dev\u002Fpm | sh",{"github":93,"download":94},"https:\u002F\u002Fgithub.com\u002Folamedia\u002Fprocess-manager","https:\u002F\u002Fgithub.com\u002Folamedia\u002Fprocess-manager\u002Freleases","Бинарный файл Rust. Linux x86_64. Лицензия MIT.","\u002Fscreenshots\u002Fprocess-manager.png",{},"ru\u002Fapps\u002Fprocess-manager","GGz362ARS7ezGHwrtQ44KiuYzj1oZ-p_9Pu8iRuEHhk",{"id":101,"extension":83,"items":102,"meta":119,"stem":120,"__hash__":121},"categories\u002Fru\u002Fcategories.yml",[103,105,108,111,114,116],{"slug":82,"label":104},"Инструменты разработчика",{"slug":106,"label":107},"ai","ИИ",{"slug":109,"label":110},"games","Игры",{"slug":112,"label":113},"mobile","Мобильные",{"slug":72,"label":115},"CLI",{"slug":117,"label":118},"utilities","Утилиты",{},"ru\u002Fcategories","r8O8ao0LdLLhzuiSt0zGgDX3hRd8PRZb-v6NpWG9E9g",{"data":123,"body":124},{},{"type":125,"children":126},"root",[127,143,156,177],{"type":128,"tag":129,"props":130,"children":131},"element","p",{},[132,135,141],{"type":133,"value":134},"text","Создайте ",{"type":128,"tag":31,"props":136,"children":138},{"className":137},[],[139],{"type":133,"value":140},"pm.yaml",{"type":133,"value":142}," в корне проекта:",{"type":128,"tag":144,"props":145,"children":151},"pre",{"className":146,"code":147,"language":148,"meta":149,"style":150},"language-yaml","services:\n  web:\n    command: python3 -m http.server 8080\n    environment:\n      PYTHONUNBUFFERED: \"1\"\n    depends_on:\n      - logger\n    restart: on-failure\n\n  logger:\n    command: bash -c \"while true; do echo heartbeat; sleep 5; done\"\n","yaml","","undefined",[152],{"type":128,"tag":31,"props":153,"children":154},{"__ignoreMap":149},[155],{"type":133,"value":147},{"type":128,"tag":129,"props":157,"children":158},{},[159,161,167,169,175],{"type":133,"value":160},"Все поля кроме ",{"type":128,"tag":31,"props":162,"children":164},{"className":163},[],[165],{"type":133,"value":166},"command",{"type":133,"value":168}," опциональны. ",{"type":128,"tag":31,"props":170,"children":172},{"className":171},[],[173],{"type":133,"value":174},"working_dir",{"type":133,"value":176}," по умолчанию — директория конфига.",{"type":128,"tag":178,"props":179,"children":180},"style",{},[181],{"type":133,"value":149},1777756434338]