nnii.local : 8

nnii to All @ https://www.opennet.ru/opennews/art.shtml?num=64728 03/02/26 00:31 UTC


15 лет прошло, а срач всё там же.
Фанаты SysV/AT&T, объясните мне.
Весь юникс построен на философии наследования прав процессов. Весь, кроме cgroups, наверное. Модель fork+exec. С понижением прав от процесса к процессу без возможности повышения. С деревом процессов! Представляете, в UNIX если процесс умирает, то родитель сигнал получает! В отличие от богомерзкой венды, где CreateProcess.
И наследуется и консоль, и открытые файлы.

И все системные процессы должны порождаться init. И так и было, если кто из седовласых помнит, почему init вообще существует, а не запускаются сразу шелл-скрипты. Ведь можно же сразу запускать шелл-скрипты, даже в некоторых дистрах так делается. Но потом разрабы init встают в позу KISS, а делать что-то надо, поэтому изобретается костыль, который со временем становится стандартом де-факто вопреки логике UNIX. Круче только было с berkley sockets.

А теперь, что делают shell-based системы инициализации? Правильно, изобретают демонизацию. Потому что в shell-based системах процесс запускается от пользователя. Который сначала через повышение привелегий запускает процесс, а потом этот процесс, чтобы жить, должен оторваться от пользователя, группы, консоли пользователя. И закрыть все чужие файлы, потому что это не системные файлы, а файлы пользователя. И жить потерянным, только формально обретая ppid=1, в реальности продолжая наследовать права и свойства пользователя который его запустил. Ну, кто как умел писать функцию демонизации, поверьте их столько же, сколько профессионалов инит-скрипта. И сколько было всегда с этим проблем. От потерянных процессов, которые нельзя остановить шеллскриптом, потому что pid-файл потерялся, до наследования лишнего и получения sighup, который нивелировался nosighup. Костыль на костыле костылём погоняет. А кто получит SIGCHLD? init, который об этом сироте даже не в курсе? Или инит-скрипт? И всё во имя KISS. Я видел хорошие инит-скрипты и даже сам писал с попыткой преодолеть все косяки. Единицы таких. Сходите посмотрите на инит-скрипт ClickHouse и обрыдайтесь. Или инит-скрипт MySQL. И каждый дистр пытался решить проблемы запуска сервиса от пользователя. Дальше всех ушла OpenRC. Хуже всех - у Debian, но там в ДНК вшиты шелл-врапперы "для удобства". И как "изучать устройство unix" в этом случае, если система инициализации противоречит идеологии?

Ну то есть SysV/AT&T настолько не-юникс-вей, что даже венда запускает сервисы через отдельный фреймворк, а не от пользователя. А солярка отказалась от скриптов в пользу SMF. Про макось (unix certified, на минуточку) говорить не будем, но там тоже launchd вместо скриптов. Хотя NextStep ещё был на скриптах.

И вот вам приносят два проекта - upstart и systemd. Обе решают все проблемы и более чем unix-way, потому что процесс контролирует менеджер процессов, то, чем должен был стать init. Ничего больше не теряется, всё управляется и мониторится. Ура! ulimit'ы теперь работают (старички, ну-ка расскажите, как выставить ulimit'ы процесса через скрипты)! Да, может обе неидеальны. Но сначала вы выкидываете upstart (не надо гнать на шапку, в RHEL5-6 была попытка внедрить upstart), а потом вам уже насильно всучивают systemd и вы плачете по потерянному раю. Я недолго с с никсами, с 1997 года, в проде с 2003 года. И за эти 17 лет, пока не вышла седьмая центось я познал всю кривоту script-based init.

И я правда не понимаю чему вы радуетесь. Хотите простой системы - возьмите upstart, runit в конце концов. Но как бы вы ни любили скриптовать, скрипты - это не unix-way, а менеджеры процессов - unix way, так как они продолжают дело init, который застрял в KISS.

Ну и последнее. А знаете почему вы ненавидите systemd? Потому что у большинства из вас был в момент перехода Debian. Я работал с многими дистрами в проде, и с rhel-based, и с debian-based. Понимаю, что у обоих лагерей фанатов свои бесспорные аргументы. Но когда RHEL выпустил семёрку с полностью переписанной системой инициализации на systemd-unit'ы, в debian пошли своим чудовищным путём, обернув инит-врапперы в юниты, которые ломались так же как и без systemd, но с systemd, что вызвало баттхёрт у всех. У системдешников от чудовищности костыля, у инитскриптеров от того, что оно к старым костылям просто приплюсовало ещё один.

Смиритесь уже и обретите UNIX. Всем добра.

читать эху nnii.local


humor.24 : 74

nnii to All @ менеджер по продажам 31/01/26 05:41 UTC


Жил был один менеджер по продажам. Пошел устраиваться на работу. Долго ли коротко ли резюме рассылал, а как-то пришел в одну контору на собеседование с генеральным директором. И шло у них собеседование шесть часов. Уже и директор взмок, и менеджер три раза воды просил. А все никак не могут договориться. Начинали с двухсот баксов в месяц - а уже за два с половиной килобакса спорят, и проценты, и бонусы, и какие-то еще там спортзалы, мобильные связи, обеды, подъемные, страховки, отпуск, командировочные, машину служебную, ноутбук, кучу всякого менеджер себе выбил. Сдался в итоге генеральный директор, все условия выполнил. Все, что менеджер просил - дал.

Приступил менеджер к работе, и за первый месяц увеличил продажи втрое, потом вдесятеро, потом в сто раз, потом вообще все в конторе продал, включая мебель, канцтовары, секретаршу - мужикам в баню, базу данных клиентов - конкурентам, а самого шефа - налоговой.

Потому что это был, сцуко, очень хороший менеджер по продажам.

читать эху humor.24


idec.talks : 3255
spnet.uplink : 23
naste.ne : 30

foxears to shaos @ Re: Re:недонода :) 03/01/26 13:46 UTC


>А когда станция убирается из списка?
>Например yesterlink уже давно не отсвечивает

Уже ушла, по алгоритму через неделю недоступности убирается из списка. Но в моей реализации была ошибка, которую уже устранил.

читать эху naste.ne


retro.talks : 71

nnii to nnii @ Re: mercurial (было: соединить squeeze и openbsd 7.8) 14/12/25 05:11 UTC


по управлению не нашёл, но по передаче файлов оказалось всё интересно

поставил в sarge mercurial из бэкпортов

на хосте (любой современный хост) создал реп, написал в нём hgrc:
[web]
allow-push=*
push_ssl=False

и сделал hg serve... и всё, старая hg нормально пушит по http

читать эху retro.talks


ring2.global : 4

nnii to Khurazee @ Re: Привет, Мир! 02/12/25 02:03 UTC




nnii.local8 naste.ne30 idec.talks3255 retro.talks71 humor.2474 spnet.uplink23 ring2.global4