svcman
v0.1.1
Published
Терминальный интерфейс (TUI) для управления службами systemd с поддержкой мыши
Readme
svcman — TUI для управления службами systemd
Терминальный интерфейс на Node.js (на базе neo-blessed) с полной поддержкой мыши.
Возможности
- Список всех служб с цветовой индикацией (работает / упала / неактивна) и статусом автозапуска
- Запуск, остановка, перезапуск, включение/выключение автозапуска (с подтверждением для опасных действий)
- Журнал службы в реальном времени (
journalctl -f), подсветкаerrorиwarning - Потребление: CPU% (100% = одно ядро), память (cgroup), число задач и процессов
- Что запущено: все процессы службы (PID, память, потоки, полная команда) и
ExecStart - Открытые порты: слушающие TCP/UDP-сокеты процессов службы (через
ss) - Просмотр unit-файла (
systemctl cat) - Фильтр по состоянию и поиск по имени/описанию
Установка и запуск
Для начала установите nodejs и npm, если их у вас еще нет. После можете запускать проект
npm install
node src/index.js # просмотр; управление — через sudo -n
sudo node src/index.js # полный доступ (управление, чужие сокеты, весь журнал)Требования: Linux с systemd, Node.js 18+, утилиты systemctl, journalctl, ss (iproute2).
Для установки как команды: npm install -g . → svcman.
Если у становили проект глобально, то для запуска достаточно будет прописать
svcmanУправление
| Действие | Мышь | Клавиши | |---|---|---| | Выбор службы | клик / колёсико по списку | ↑ ↓ / j k | | Вкладки: Обзор / Логи / Unit | клик по вкладке | 1 2 3, Tab, l | | Старт / Стоп / Рестарт | кнопки внизу | s / x / r | | Автозапуск вкл/выкл | кнопка | e | | Поиск | кнопка | / (Esc — сброс) | | Фильтр состояния | кнопка | f | | Автопрокрутка журнала | кнопка | w | | Прокрутка правой панели | колёсико | PgUp / PgDn, g / G | | Выход | кнопка | q / Ctrl+C |
Права доступа
- Без root действия
start/stop/restart/enable/disableвыполняются черезsudo -n(нужен sudo без пароля); при отказе в строке статуса появится подсказка. - Журнал: добавьте пользователя в группу
systemd-journalили запускайте через sudo. - Порты и процессы чужих пользователей
ss//procпоказывают только root.
Структура
src/index.js логика приложения, привязки клавиш и мыши
src/ui.js виджеты и раскладка
src/render.js форматирование списка и вкладки «Обзор»
src/systemd.js вызовы systemctl и разбор вывода
src/proc.js cgroup, /proc, ss: процессы, CPU, память, порты
src/logs.js потоковое чтение journalctl
test/ тесты парсеров (npm test)