тем, что он сервис
systemd не нужен pid file например и ещё есть управление через cgroups с прочей магией.
нельзя любую фигату без вывода в определённые места назвать демоном. это вообще антинаучный термин, ведь демонов больше нет.
Вообще, у systemd, так как это PID1 (как и у SysV init, BSD init и прочих инит-систем (я не рассматриваю инит-скрипты, так как в этом случае PID1 будет иметь /bin/sh, или то, на чём написан скрипт), являющихся управляющим процессом) привилегии высшие, выше только Аллах ядро. PID1 управляет запуском остальных демонов. PID1 не обязан быть демоном, но systemd является таковым.
Куда мне идти устраиваться на работу вместо тебя? (%
Вообще, у systemd, так как это, PID1 привилегии высшие, выше только ядро. PID1 управляет запуском остальных демонов. PID1 не обязан быть демоном, но systemd является таковым.
хм, походу спрашивалось немного другое: чем те сущности, что запускает systemd(пусть будут службы), отличаются от обычных демонов(которые мы сами можем создать)?
Нет, они включают ряд таких серьёзных дистрибутивов как Devuan, Slackware, Gentoo, Crux, LFS, PCLinuxOS, Plamo, Source Mage, Star Linux, Vector, Void, Zenwalk,... и т.д.
УПРЛС в /general так шутить?
гента может паре контор нужна, чтобы сишечку компялять, но таких ничтожно мало, что даже упоминать не стоит.
а за дичь уровня «ряд таких серьёзных дистрибутивов как LFS» вообще нужно по месту регистрации регистранта скорую вызывать.
Такой дистрибутив как LFS крайне полезен для сборки своей системы под специфические требования без лишнего хлама. Именно поэтому появился проект PiLFS, в рамках которого собирают LFS под Raspberry Pi. Для самых разных проектов на этих одноплатниках. А можно и на десктопе юзать.
хватит наркоманить, на десктопе ты можешь хоть сборочку by lex666 с трекера юзать внеся его в ряд сурьёзных дистрибутивов. такие маняфантазии быстро об AWS\etc разбиваются.
чтоб запустить процесс демоном я делаю fork(), закрываю все наследуемые от родителя дескрипторы, перенаправляю stdin/stdout/stderr в /dev/null и далее запускаю exec() бинарь нового процесса...
что делает systemd в таком случае... если не то же самое?
Ничем и всем. Технически демон — это процесс, форкающийся, чтобы детачнуться от консоли. При этом не обязательно, чтобы этот процесс умел самостоятельно это делать — это можно сделать вручную, или это может сделать процесс, запускающий дочерние процессы (инит). Сам по себе инит должен делать это самостоятельно, чтобы передать контроль юзеру, остальные процессы не обязаны.
При этом не обязательно, чтобы этот процесс умел самостоятельно это делать — это можно сделать вручную, или это может сделать процесс, запускающий дочерние процессы (инит)
ну в нашем случае init это systemd... он форкается и эти форки делают все что я описал выше... почему эти форки не демоны?
Потому, что они - systemd daemons управляемы.
Как на уровне системы, так и на уровне user space, и об этом могут спросить на собеседовании некие ехидные дяди.
Чем и хорош systemd, тем что каждый демон - управляется независимо от других.
Изначально, systemd задумывалась, чтобы не было причин посылать KILL9.
systemd start/stop - таки лучше и наглядно в journalctl видна работа/отказ демонов.
да я немного непонятно вопрос задал, правильно так: «чем сущности, которые порождает systemd(которые запускаются с помощь systemd start) отличаются от обычных демонов?»
«чем сущности, которые порождает systemd(которые запускаются с помощь systemd start) отличаются от обычных демонов?»
Сами сущности ничем не отличаются, как были бинарники которым передавались параметры для запуска, так и остались. Systemd их просто в cgroups распихивает что-бы не помнить какой pid у какого процесса
запомни этот твит.
через пять лет проверишь, сколько нового софта написали хипстерские федопидоры и сколько трильярдов капитализации у кофеен которые этот софт у себя внедрили. это вам не это. слоупочно паковать софт любой мейнтейнер дебиана с лишней хромосомой может. но линукс чёт двигать они не способны.
LFS - это именно дистрибутив. «distribution» - производное от «distribute» - распространять. А распространять GNU/Linux можно в самых разных формах. Можно в форме бинарных сборок. Можно исходниками и ебилдами. А можно исходниками и мануалом по сборке, который можно на ходу корректировать на свой вкус и цвет.