home.social

#pid_1 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #pid_1, aggregated by home.social.

fetched live
  1. Как я написал PID 1 для контейнеров на чистом ассемблере: x86-64 и ARM64

    Не потому, что контейнерному миру срочно нужен ещё один init. Есть Tini, есть docker run --init , и для большинства production-сценариев я бы по-прежнему начал именно с них. Мне скорее хотелось разобрать задачу до самого нижнего уровня: без libc, без runtime, напрямую через Linux syscalls. Заодно проверить, насколько сильно будет отличаться одна и та же реализация на x86-64 и ARM64. В итоге из небольшого эксперимента получился mini-init-asm : PID 1, который запускает приложение в отдельной process group, передаёт сигналы всей группе, собирает zombie-процессы и умеет корректно завершать контейнер с exit code приложения. Позже туда добавились subreaper mode и простой restart-on-crash. А сам проект в итоге доехал сначала до Debian unstable, а затем и до testing. Но началось всё с вопроса: что вообще должен уметь нормальный PID 1 внутри контейнера?

    habr.com/ru/articles/1069824/

    #linux #pid_1 #containers #assembly #x8664 #arm64 #epoll #docker #debian

  2. PID 1 на минималках: свой init, который жмёт зомби

    Привет, Хабр! Сегодня расскажу о довольно узком, но довольно интересном моменты работы с Linux — о процессе с PID 1 и зомби-процессах. Когда запускаешь приложение в минимальном окружении и оно оказывается первым процессом, могут возникнуть небольшие сюрпрзики. Та же команда ps может показывать несколько процессов со статусом <defunct> . Эти дефекты и есть зомби-процессы. Столкнувшись с ними впервые, можно растеряться, ведь процесс уже завершился, а запись о нём всё торчит в таблице процессов. Как так, и главное, что с этим делать? Давайте смотреть, почему появляются зомби, какую роль здесь играет процесс №1 (он же init), и как написать свой минималистичный init, который этих зомби убивает (то есть убирает) автоматически. Разобраться, как работает PID 1

    habr.com/ru/companies/otus/art

    #linux #PID_1 #init_процесс #zombi_процесс #зомбипроцессы_Linux #waitpid #SIGCHLD #docker_контейнер

  3. systemD с 0 до 1: библия сисадмина

    Что бы кто не говорил, systemD становится стандартом систем инициализацией в линуксе. И с 80% вероятностью все сервера будут с systemD. Не факт, конечно, есть и личные сервера, на которых может стоять хоть Gentoo, хоть Devuan, хоть NixOS. Некоторые дистрибутивы хотят даже перейти с загрузчика Grub на systemd-boot! Потому знать, как работать с данной системой инициализации, должен каждый сисадмин и просто программист, ибо сейчас он практически везде. В этой статье мы разберем — создание сервисов и юнитов, как облегчить работу при помощи systemd, отслеживать состояние системы и управлять ей. А также напишем небольшой скрипт на Python для автомизации некоторых задач. Приятного чтения, господа линуксоиды и просто пользователи!

    habr.com/ru/companies/timeweb/

    #timeweb_статьи #linux #systemd #система_инициализации #pid_1 #openrc #sysvinit #init #настройка_linux #системное_администрирование #администрирование_linux #python

  4. Библия systemD: как управлять системой

    Что бы кто не говорил, systemD остается стандартом систем инициализацией в линуксе. И с 100% вероятностью все сервера будут с systemD. И поэтому знать как работать с данной системой инициализации должен знать каждый сисадмин и просто программист. В этой статье мы разберем создание сервисов и юнитов, как облегчить работу при помощи systemd, отслеживать состояние системы и управлять системой.

    habr.com/ru/articles/817701/

    #linux #ядро #systemd #systemctl #journald #journalctl #администрирование_linuxсистем #администрирование #система_инициализации #pid_1 #sysvinit #runit #dinit