LINUX.ORG.RU
ФорумTalks

Нейтральный пофигист сколоняется к ненависти

 


0

2

В Debian приехал systemd, а у меня есть демон, который хотелось бы подгружать при старте системы. Ну, думаю, надо потратить пару минут — там же всё просто?
Увы. Это мало того что не просто — взять пример и изменить под свои нужды сложнее, чем раньше, поскольку конфиг содержит (а любой взятый пример их обычно ещё и НЕ содержит и надо думать не только о нужном значении, но и о том какие параметры вообще есть)множество systemd-специфичных вещей, которые здравым смыслом не осиливаются. Но это всё мелочи.
Задача: Есть демон. Демону нужен файл. Пусть к файлу внутри демона прописан просто как «file.dat». Следовательно для корректного запуска мне нужно перейти в директорию с демоном и там его запустить.
Как добиться такого же поведения от systemd я не понял. Разумеется он это может, но вычитывать мегабайты несуществующей документации ради одноразовой элементарной задачи мне не интересно. Мне проще изменить демон так, чтобы он принимал в качестве параметра абсолютный путь к нужным ему файлам.
Вот этим я сейчас и займусь.

★★☆
Ответ на: комментарий от Stahl

А у тебя децентрализация. И кто прав? :)

Хорошо работает в режиме белого и пушистого, но очень неудобно в штатном режиме.

Поясни. Не понял эту фразу.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Вот есть у меня демон. Точнее нет. Ты же не хочешь демонов. Есть обычная программа, которую надо демонизировать. Ок, демонизируй. Как? Ну, почитай доку на один из 100500 «погонщиков демонов» который используется на этой конкретной системе. А на другой системе ты пойдёшь читать другую доку для другого «супервизора». Админский рай прямо-таки.
В то время как с точки зрения программиста задача решается одинаково и тривиально.
Зачем ты такой злой? Зачем ты создаёшь проблемы на ровном месте?
Ты не понял сарказма? Объясню — именно мой программистский подход без супервизора обеспечивает единообразие, твой же супервизорный вариант обеспечит лишь хаос.
Компренде?:)

Stahl ★★☆
() автор топика
Ответ на: комментарий от Stahl

Ок, демонизируй. Как? Ну, почитай доку на один из 100500 «погонщиков демонов» который используется на этой конкретной системе.

Не проблема, т.к. везде в скором времени будет стоять systemd. ☺

PolarFox ★★★★★
()
Ответ на: комментарий от Stahl

Классное единообразие. Одна программа демонизируется при указании -d, другая — наоборот, не демонизируется при указании -n, твоя вон вообще неправильно демонизируется...

Супервизоров всегда меньше, чем демонов. В идеале вообще один.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Ок, как скажешь. Как по мне, так проще и полезней почитать ман к нужной программе, чем разобраться какой в системе супервизор и читать маны к нему.

Stahl ★★☆
() автор топика
Ответ на: комментарий от vurdalak

screen? для демонизации? шта? я пропустил очередное королевское извращение?

intelfx ★★★★★
()
Ответ на: комментарий от Stahl

Там даже на Си 20 строк кода.

Я вот не понял, почему установка обработчиков сигналов в коде демонизации. То есть если программа не демонизируется (не важно, с командной строки или из под systemd), то она не должна обрабатывать сигналы?

И, раз intelfx рассуждает, что:

И, кстати, одни только signal-ы в x86 займут байт 100

то он тоже против того, чтобы запускаемые из под systemd процессы обрабатывали сигналы? Там, в мире systemd, какая-то другая идеология, сигналы не нужны и чем-то заменены ?

mky ★★★★★
()
Ответ на: комментарий от mky

то она не должна обрабатывать сигналы?

В моём конкретном частном случае — да.

то он тоже против того, чтобы запускаемые из под systemd процессы обрабатывали сигналы?

Вовсе нет. Он лишь уточнил мной от фонаря названное число в 50 байт.

Stahl ★★☆
() автор топика
Ответ на: комментарий от intelfx

sysvinit (который, спешу заметить, занимает больше места и имеет больший футпринт, чем systemd — если считать суммарно с bash'ем и coreutils).

ну вот и системД есть... и как, удалось выкинуть из системы bash и coreutils? :) если нет, то какой это аргумент?

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Из начальной загрузки — да, удалось. Ну, если нигде нет легаси-юнитов, вызывающих скрипты. В любом случае, сильно уменьшилось количество их использований (каждый субшелл, каждый вызов — это время, и даже если на твоём x86 оно исчисляется микросекундами, то где-нибудь на 500-мегагерцевом ARM'е — вполне себе миллисекундами).

А где-то, в каком-нибудь embedded'е, и вовсе удастся их выкинуть из системы.

Так что аргумент.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

ага, а во всех _остальных_ системах добавился системД. на фоне оставшихся и шела и кореутил :)

ну пилил бы себе поттеринг свой системД для эмбендет и виртуалок... зачем его пихать туда где он не решает _ничего_ (кроме разрушения совместимости с ранее написанным софтом).

ресурсы у сообщества не безграничны и потраченное на соответствии пульсу, а теперь еще и этому велосипеду вовсе не способствуют развитию.

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Нет, поскольку я отвечал на неаргументированное субъективное мнение, а о вкусах, как известно, не спорят.

intelfx ★★★★★
()
Ответ на: комментарий от psv1967

Ладно, если ты хочешь разбора, то вот он:

добавился системД. на фоне оставшихся и шела и кореутил

Контрпример: лично у меня в загрузке системы шелл не участвует вплоть до запуска дисплейного менеджера, где подгружается Xsession.

зачем его пихать туда где он не решает _ничего_

4.2, контрпример: kwin_wayland будет завязан на logind

кроме разрушения совместимости с ранее написанным софтом

Пруф, пожалуйста.

ресурсы у сообщества не безграничны и потраченное на соответствии пульсу, а теперь еще и этому велосипеду вовсе не способствуют развитию.

Эта фраза как минимум грамматически некорректна настолько, что её трудно понять. А как максимум — опять же, упоминается взятый с потолка и ничем не подтверждённый факт «затраты ресурсов» на какое-то «соответствие».

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

ты строишь из себя важного толстого троля, а суетишься как сопливый трольчишка :)

Контрпример: лично у меня в загрузке системы шелл не участвует вплоть до запуска дисплейного менеджера, где подгружается Xsession.

самому не смешно? 1) у меня в ноуте загрузка происходит _раз_в_месяц_ 2) поскольку система при этом лежит на ssd это занимает менее 20 секунд без всякого системД

все это имеет смысл только для встроенных систем и массового старта виртуалок в облаках. соответственно и область использования оного творения следовало ограничить именно сервиспаками для дистрибутивов используемых в этих областях.

Пруф, пожалуйста.

данный тред :) только не надо заводить национальные песни «о овце с одним черным боком самоубившейся упавшим с воздушного шара кондиционером»?

Что касается ресурсов сообщества: потраченное на адаптацию к пульсе и системД время разработчиков я считаю потраченным зря, поскольку _никакой_ новой функциональности это не принесло.

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

ты строишь из себя важного толстого троля, а суетишься как сопливый трольчишка :)

Что, последний аргумент в дискуссии? =)

у меня

Отучаемся говорить за всех.

данный тред :)

Данный тред — свидетельство того, что человек поленился прочесть ман (дважды — при написании демонизации и при написании юнита). Решение его проблемы составляет три строки.

_никакой_ новой функциональности это не принесло

Опять же, отучаемся говорить за всех.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

да ты таки «позорно слил», хотя тебе давался шанс потрепыхаться.

иди потренируйся ещё в других тредах «про Кумира» :)

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

О, спасибо, мой господин, что дали мне шанс!

Нет. Слил ты. Субъективное предпочтение не является аргументом в дискуссии. Dixi; я больше не буду отвечать тебе в рамках этого треда.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от psv1967

intelfx, psv1967:
-- Ты дурак!
-- Нет, ты дурак!
-- А ты жирный!
-- А ты картавишь!
-- Ы-ы-ы-ы...
-- А-а-а-а...

Не знаю кто там из вас «слился», но со стороны вы оба выглядите глупо.

Stahl ★★☆
() автор топика
Ответ на: комментарий от PolarFox

везде в скором времени будет стоять systemd

Висеть. А потом улетать в /dev/null с пожеланиями всего хорошего поттеру

quest ★★★★
()
Ответ на: комментарий от intelfx

Че т категорически не согласен, но мое мнение маленькое :)

Во-первых, процедура демонизации является абсолютно стандартной функцией и легко гуглится. Во-вторых, можно (в строках кода) ограничиться вызовом не-POSIX функцией daemon(), про которую велосипедопейсатели обычно, почему то, забывают.

В-третьих, ИМХО, если программа - демон, она *должна* предоставлять возможность демонизации без привлечения новых сущностей. Будешь ты этим пользоваться, или нет - дело десятое. Например (только за себя), тот же dhcpcd зачастую проще стартануть так, чем вырисовывать в консоли systemctl start dhcpcd. Твой пример с 'sh -c «smth &»' также едва ли является более аккуратным.

В-четвертых, на арче мир клином не сошелся. Всегда нужно стараться думать о совместимости с устаревшим ПО (в рамках разумного, конечно).

arcanis ★★★★
()
Ответ на: комментарий от arcanis

функцией daemon(), про которую велосипедопейсатели обычно, почему то, забывают.

Итить-колотить! Спасибо, мужик. Прикольно, а я и не знал о её существовании.

Stahl ★★☆
() автор топика
Ответ на: комментарий от arcanis

Вполне возможно, что ты прав. Там тоже было исключительно моё мнение, основанное на субъективном же чувстве прекрасного...

Ну и про обратную совместимость — иногда всё же нужно её ломать. А олдстейбл пусть использует версии программ, актуальные на момент заморозки.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Потому что переменная PWD создаётся шеллом и отражает текущую рабочую директорию. Её установка ни на что не влияет.

вот оно как оказывается. Спс.

dikiy ★★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.