Hacker News Digest

Тег: #lxc

Постов: 2

Nitro: A tiny but flexible init system and process supervisor (git.vuxu.org)

nitro — миниатюрный, но гибкий init и супервизор процессов.

Назначение

  • init для встраиваемых, десктопных и серверных Linux-систем
  • initramfs, контейнеров (Docker, Podman, LXC, K8s)
  • непривилегированный демон на POSIX

Конфигурация — каталог скриптов (по умолчанию /etc/nitro).

Требования

  • Unix-сокеты
  • tmpfs или записываемый /run

Плюсы

  • Всё состояние в RAM, работает на read-only root.
  • Событийная модель без polling.
  • Ноль аллокаций и ограниченных fd во время работы.
  • Один статический бинарник + опциональный nitroctl.
  • Сервисы — просто каталоги со скриптами, компиляция не нужна.
  • Перезапуск, логирование, цепочки логов, независимость от времени.
  • Запускается на FreeBSD через /etc/ttys.

Сервис

Каждый подкаталог /etc/nitro может содержать:

  • setup — предзапуск, должен завершиться с 0.
  • run — основной процесс (не должен завершаться).
  • finish — пост-обработка, получает код выхода и сигнал.
  • log → symlink на другой сервис для логов.
  • down — не поднимать автоматически.
  • Имена ≤ 64 символов, без /, ,, переводов строк.
  • Каталоги с @ в конце игнорируются (параметризованные сервисы).

Специальные сервисы

  • LOG — лог по умолчанию.
  • SYS/setup — перед стартом остальных.
  • SYS/finish — перед остановкой всех.
  • SYS/final — после завершения всех процессов.
  • SYS/fatal — при критической ошибке.
  • SYS/reincarnate — вместо выключения (полезно для initramfs).

Параметризованные сервисы

Каталог foo@ + symlink foo@bar → запуск foo@/run bar.
nitroctl up foo@baz запустит foo@/run baz даже без symlink.

Жизненный цикл

  1. Подъём: SYS/setup, затем все непомеченные down.
  2. Работа: перезапуск при падении (пауза 2 с при частых падениях).
  3. Останов: nitroctl Shutdown/RebootSYS/finish → SIGTERM (7 с) → SIGKILL → SYS/final → reboot/off/exit.

Управление nitroctl

nitroctl [команда] [сервис]

  • list — состояния, pid, uptime, код выхода.
  • up/down — запустить/остановить (SIGTERM или down-signal).
  • start/stop/restart — с ожиданием успеха.
  • p/c/h — SIGSTOP/SIGCONT/SIGHUP.

by todsacerdoti • 22 августа 2025 г. в 19:06 • 222 points

ОригиналHN

#linux#init#process-supervision#containers#docker#podman#lxc#kubernetes

Комментарии (82)

  • Участники сравнивают Nitro с runit, s6, dinit и systemd: общие черты — минимализм, отсутствие декларативных зависимостей, ручная настройка порядка запуска.
  • Некоторые считают Nitro скорее «голым» супервизором процессов, чем полноценной init-системой из-за отсутствия управления ресурсами, пользователями и параллельного запуска.
  • Обсуждаются контейнерные кейсы: одни считают наличие init внутри контейнера избыточным, другие — необходимым при форке процессов.
  • Упоминаются альтернативы: собственные минимальные init-системы на C и Rust, а также новый модульный подход в NixOS.
  • Критика имени: «nitro» уже занято AWS Nitro, Nitro.js и другими проектами; предлагают сменить название.

I run a full Linux desktop in Docker just because I can (howtogeek.com)

Запускаю полноценный Linux-десктоп в Docker — просто потому что могу

Автор: Ali Haider

Docker считается исключительно для CLI-сервисов, но я решил разместить в контейнере полноценный графический Linux. Зачем? Из чистого любопытства и желания проверить границы технологии.

Почему не VirtualBox или dual-boot?
Хотелось получить Linux, который живёт рядом с Windows без перезагрузок и разделов. Казалось, что за пару дней подниму GNOME/KDE в контейнере, но эксперимент затянулся на четыре дня и превзошёл все ожидания.

Что получилось
На Windows 10 через Docker удалось запустить полноценный рабочий стол. Проект стал жёстким crash-курсом по X11, PulseAudio, GPU-пасsthrough и сетевым трюкам, но в итоге всё работает: окна Linux-приложений появляются поверх Windows, звук идёт, файлы доступны.

by redbell • 19 августа 2025 г. в 11:39 • 159 points

ОригиналHN

#docker#linux#gnome#kde#x11#pulseaudio#gpu-passthrough#lxc#systemd#oci

Комментарии (96)

  • Участники делятся опытом запуска полноценных Linux-десктопов в Docker/LXC: Arch + noVNC, Selkies + KDE, linuxserver/webtop, SkiffOS.
  • Обсуждают производительность: 70 % от нативной при web-VNC, лучше через Sunshine или xrdp с аппаратным ускорением.
  • Появляются идеи: эфемерные браузеры через Tailscale+Mullvad, Twitch/Discord-Plays-Pokemon, тесты из разных стран.
  • Кто-то предпочитает LXC/LXD или systemd-nspawn, чтобы не мучиться с systemd внутри OCI-контейнеров.
  • Вспоминают исторические проекты: Jess Frazelle, Samsung DeX, WSL2 + MobaXterm, MATLAB-контейнер.