pm

pm

Менеджер процессов в стиле docker-compose с TUI-панелью. Запускает любые команды.

Linux
curl -fsSL appcrate.dev/pm | sh

Бинарный файл Rust. Linux x86_64. Лицензия MIT.

Возможности

Конфигурация в стиле docker-compose

Описывайте сервисы в pm.yaml — команда, переменные окружения, depends_on, рабочая директория, политика перезапуска.

Интерактивный TUI

Навигация по сервисам, запуск/остановка/перезапуск по отдельности или всех сразу. Управление с клавиатуры.

Режим демона

pm up запускает фоновый демон. Сервисы продолжают работать после выхода из TUI.

Логи по сервисам

pm logs <сервис> показывает вывод. Добавьте -f для потоковой трансляции.

Политики перезапуска

no, on-failure или always. Экспоненциальная задержка: от 1с до 32с.

Горячая перезагрузка

pm reload подхватывает изменения конфига без перезапуска работающих сервисов.

Использование

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 # остановить демон

Клавиши TUI

↑/↓ или k/j Навигация по сервисам
s / Enter Запустить выбранный
x Остановить выбранный
r Перезапустить выбранный
a Запустить все
z Остановить все
R (shift) Перезагрузить конфиг
q Выход из TUI (сервисы продолжают работать)

Пример конфигурации

Создайте pm.yaml в корне проекта:

services:
  web:
    command: python3 -m http.server 8080
    environment:
      PYTHONUNBUFFERED: "1"
    depends_on:
      - logger
    restart: on-failure

  logger:
    command: bash -c "while true; do echo heartbeat; sleep 5; done"

Все поля кроме command опциональны. working_dir по умолчанию — директория конфига.

Теги

rustprocess-managerdocker-composetuidaemoncli

История версий

2026-04-19v0.1.0Первый релиз — демон, TUI, YAML-конфиг, политики перезапуска, логи по сервисам