Где ты видел падучий кусок быдлокода, который самостоятельно делал бы двойной форк? (-:
Linux без systemd
Модератор: Модераторы разделов
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Linux без systemd
Где ты видел падучий кусок быдлокода, который самостоятельно делал бы двойной форк? (-:
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Linux без systemd
Rootlexx писал(а): ↑15.05.2015 22:02Есть в Debian с sysvinit и ещё одна проблема: так как sysvinit не заботит состояние сервисов после запуска, он и не знает, какие из них надо остановить. В результате сервис, для которого отключён автозапуск при загрузке, но запущенный вручную, не будет корректно остановлен при завершении работы.
Не припоминаю сервисов, которые по умолчанию не прописывались бы в запуск и остановку. Если руками полез менять — то, конечно, надо соображать, что делаешь. Если зачем-то понадобилось временно отключить запуск сервиса, то его остановку при этом отключать вовсе не обязательно. Хотя обычно если уж сервис отключается, это значит, что он не будет запускаться (инит-скриптом) никогда.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Linux без systemd
Hephaestus писал(а): ↑15.05.2015 12:57Продуманный инструмент начинается с проекта. С определения целей, задач и методов. Составляется чёткий план.
Не могу не дать ссылку на классику: Собор и Базар.
В прошлый раз я просил вас рассказать подробнее или хотя бы привести ссылку, какой такой API перелопатил Леннарт, но ответа не дождался. Может, в этот раз повезёт?
Bizdelnick писал(а): ↑15.05.2015 15:31Ну и какое отношение к инициализации системы имеют libpam, libaudit, libkmod и прочее?
См. https://people.debian.org/~stapelberg/docs/...pendencies.html.
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Linux без systemd
Rootlexx писал(а): ↑15.05.2015 22:27См. https://people.debian.org/~stapelberg/docs/...pendencies.html.
Спасибо! Добавим к списку ненужного libdbus, libudev и libwrap.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Linux без systemd
Bizdelnick писал(а): ↑15.05.2015 22:19Если зачем-то понадобилось временно отключить запуск сервиса, то его остановку при этом отключать вовсе не обязательно.
Так остановку-то никто и не отключает. Сам скрипт rc пропускает запуск тех stop-скриптов, для которых нет start-ссылки в предыдущем runlevel. И это даже не баг, а фича: не пытаться останавливать не запущенные (по мнению sysvinit) сервисы.
А если ещё вспомнить постоянное включение автозапуска после каждого обновления...
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Linux без systemd
Поизучал скрипт — действительно, всё так. Значит, при сочетании трёх экзотических условий (человек установил пакет с инит-скриптом, но зачем-то отключил его; человек зачем-то запустил сервис через отключённый ранее инит-скрипт; демон не может корректно завершиться по SIGTERM и требует какого-то шаманства) systemd лучше, чем sysvinit в Debian.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Linux без systemd
Одной ссылкой не обойтись, но извольте. Вы, кажется, в той теме не участвовали (как же Вы пропустили-то?), поэтому, если интересно, почитайте целиком.
Если целиком лень, то вот здесь был поднят вопрос.
Можете почитать от этого поста и ниже.
Если уж совсем лень, то ниже по треду я откопал на АрчВики решение задачи в двух вариантах (до systemd и после) для сравнения.
А ещё ниже я привёл sysvinit-скрипт в соответствие systemd-конфигу.
Увы, пруфа не дам. Обсуждение было на ЛОРе да и не вчера это было, поэтому искать лень, правда.
Источник не самый авторитетный.
Однако полагаю, что человек говорит правду.
Цепочку доверия выстроить не могу, я исходил из следующего:
1. Человек, говоривший об этом, занимается разработкой и API systemd его интересовал по долгу службы. Кроме того, этот человек общался с Леннартом, как я понял. Стало быть, знает, о чём говорит.
2. Леннарт - не настолько важная персона, чтобы на него ещё и клеветали.
3. Не один Леннарт имеет голову на плечах и занимается программированием, поэтому мнение других людей столь же достойно внимания, как и мнение Леннарта.
С учётом этих трёх пунктов, не вижу оснований прислушиваться исключительно к словам Леннарта, отбрасывая все остальные.
Если же подвергать сомнению слова человека, только на основании того, что это был ЛОР, то простите, Леннарт для меня ничуть не авторитетнее - точно такой же, как и любой другой на просторах Сети. Непререкаемый авторитет он себе пока не заработал. Молодой ишшо.
Думаю, что позиция "все пида...сы, а Леннарт Д'Артаньян" столь же нелепа, как и прямо противоположная.
Поэтому допускаю, что люди могут не врать. Даже на ЛОРе.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Linux без systemd
Да. Найдется за несколько лет работы один-два падучих демона таких, что кроме тупого перезапуска, ничем не помочь. Но это именно, что кривой код, это исключение а не правило.
Обеспечивать автоперезапуск для таких случаев, означает возводить их в норму. И отучать человека от анализа ситуации. При всём возможном комфорте такой схемы, правильной её назвать нельзя. Никак.
Есть, кстати, вполне живой пример похожей схемы, хотя и не в Linux.
С ОС MS Windows имели дело? Вспомните, есть такая штука BSOD. Падение, крах системы.
Винда производит автоматический перезапуск. Так настроено из коробки.
Ну и как Вы думаете, помогает? Нифига. BSOD - перезапуск, BSOD - перезапуск и так до бесконечности.
И что же люди делают? Правильно, отключают этот чёртов автоматический перезапуск, ибо он даже сообщение на экране прочитать не даёт.
Вот Вам наглядная иллюстрация схемы с перезапуском в случае падения. Степень полезности можете оценить.
Да, оно настроено на перезапуск. Случаев, когда бы это помогло, лично я не знаю.
Потому что падение не возникает на пустом месте. В 99% случаев нужен анализ ситуации.
Re: Linux без systemd
Народ, а на этом форуме игнорирование есть? А то некоторые личности совсем уж бред несут...
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
Re: Linux без systemd
Есть. Давно уже вовсю пользуюсь...
Вообще-то, общие выводы можно делать только на основе частных примеров - потому что больше их не из чего делать. Это называется индукция.
Re: Linux без systemd
Hephaestus писал(а): ↑16.05.2015 00:54Да, оно настроено на перезапуск. Случаев, когда бы это помогло, лично я не знаю.
На ПК крутиться сервис или он просто показывает картинку 24/7. Бсоды чаще всего не приводят к перезапуску по циклу, просто в других случаях на них часто не обращают внимания.
Если вообще убрать автоперезапуск при бсоде, то будет совсем печально.
Re: Linux без systemd
Как?
P.S. И вообще, интересно: есть ли в природе адекватный линуксофорум, на котором нет поцтерофилов?
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Linux без systemd
А что с тем форумом, который Алёша-Москвич делал?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Linux без systemd
А кто такие поцтерофилы? Фанаты Поттеринга? А такие есть в природе? Мне, к примеру, совершенно безразлично, какая там в линуксе система инициализации. Для меня сам линукс глубоко вторичен. Денег он мне не приносит, польза от него только теоретическая. А даже если бы он был важен, то повлиять на мейнстрим я не в состоянии. Ведь systemd стал мейнстримом. И даже Патрег "не исключает вероятности" перехода на него.
Плюсы сабжа я прочитал на офсайтах altlinux и debian. Там достаточно доходчиво объяснили в чём они эти плюсы заключаются. Про минусы я тоже почитал, но мне показалось, что они высосаны из пальца (речь про идеологические минусы). Как мне показалось, многих бесит "выскочка Поттеринг". Ну что-ж, выскочка не виноват, что он умнее основной биомассы, мыслит масштабно и готов "пошатнуть основы". В конце-концов никто никому ничего не должен, всё свободно и открыто и скатертью дорога.
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Linux без systemd
Это так красноглазики называют пофигистов. =)
Любопытно, они так же писают кипятком, и рассказывают, как им неудобно, когда берут в руки смартфон, например, или роутер, а потом узнают, что внутри него systemd? =)
- /dev/random
- Администратор
- Сообщения: 5282
- ОС: Gentoo
Re: Linux без systemd
Какой такой смартфон? Роутер - да, но там никаких systemd нету, в основной массе -- линукс, поверх которого крутится всякая проприетарщина.
Re: Linux без systemd
Лучше уж холивар (в разумных пределах), чем мёртвый форум. К сожалению, времена бурных обсуждений на профильных форумах уже прошли. Вот раньше страсти кипели, любо-дорого читать.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Linux без systemd
Вот-вот-вот. Очень интересно. Леннарт Поттеринг никогда ни в чём не виноват. Виноват кто угодно, только не он. Вот это его и погубит.
А насчет того, что он кого-то там умнее, это мы ещё посмотрим.
Прежде всего, никакой, даже самый исключительный ум, не оправдывает хамство в ответ на критические замечания. И его отношение к багрепортам тоже чести не добавляет.
Если бы Линус в своё время вёл себя аналогичным образом, Linux не состоялся бы.
Посмотрите приведенные цитаты.
Это надёргано из дискуссий о systemd.
Как видите, чего только нет. От обвинений в клевете, зависти и ненависти, до откровенного хамства и неуважения. Часть этих высказываний адресована лично мне.
То есть люди, не принимающие systemd, выглядят этакими агрессивными маразматиками, тормозящими развитие человечества. А между тем, если Вы посмотрите, к примеру, мои сообщения, в них нет ни грамма грубости, агрессии или ненависти.
Так же не бесятся Bizdelnick, alv и другие, кто высказывал недовольство systemd - в их сообщениях не просматривается ненависть или агрессия.
Это я к чему? А к тому, что Вам показалось, противники systemd бесятся - это действительно только показалось.
Ощутимая доля негатива льётся как раз с противоположной стороны.
Спасибо сказали:
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Linux без systemd
Всё верно. =)
Re: Linux без systemd
Hephaestus писал(а): ↑16.05.2015 00:38Одной ссылкой не обойтись, но извольте. Вы, кажется, в той теме не участвовали (как же Вы пропустили-то?), поэтому, если интересно, почитайте целиком.
Если целиком лень, то вот здесь был поднят вопрос.
Можете почитать от этого поста и ниже.
Если уж совсем лень, то ниже по треду я откопал на АрчВики решение задачи в двух вариантах (до systemd и после) для сравнения.
А ещё ниже я привёл sysvinit-скрипт в соответствие systemd-конфигу.
Посмотрел скрипт. Может, для вашей однопользовательской машины его бы и хватило, но в Debian его точно бы в таком виде не приняли. То, что сразу бросилось в глаза:
1. Где LSB-заголовки?
2. Не указано, что скрипт должен стартовать после поднятия сети. (Впрочем, если rtorrent правильно обрабатывает её отсутствие, то это необязательно.)
3. Нет защиты от повторного запуска.
4. Не реализовано действие status.
5. При остановке сервиса будут убиты все экземпляры rtorrent, в том числе принадлежащие другим пользователям.
А теперь попробуйте написать правильно, и сравним.
Сервис systemd, правда, тоже написан плохо. Видимо, его автор такой же скриптописатель. Я набросал такой:
Код: Выделить всё
[Unit]
After=network.target
[Service]
ExecStart=/usr/bin/screen -S rtorrent -Dm /usr/bin/rtorrent
KillSignal=SIGHUP
User=user
[Install]
WantedBy=multi-user.target
Проверил: в $ screen -list присутствует rtorrent, по $ screen -r rtorrent к нему успешно подсоединился.
Hephaestus писал(а): ↑16.05.2015 00:38Увы, пруфа не дам. Обсуждение было на ЛОРе да и не вчера это было, поэтому искать лень, правда.
Источник не самый авторитетный.
Однако полагаю, что человек говорит правду.
Цепочку доверия выстроить не могу, я исходил из следующего:
1. Человек, говоривший об этом, занимается разработкой и API systemd его интересовал по долгу службы. Кроме того, этот человек общался с Леннартом, как я понял. Стало быть, знает, о чём говорит.
2. Леннарт - не настолько важная персона, чтобы на него ещё и клеветали.
3. Не один Леннарт имеет голову на плечах и занимается программированием, поэтому мнение других людей столь же достойно внимания, как и мнение Леннарта.
С учётом этих трёх пунктов, не вижу оснований прислушиваться исключительно к словам Леннарта, отбрасывая все остальные.
Дело в том, что я ломания API systemd не припомню, поэтому мне и хотелось бы подтверждения. Я, конечно, допускаю, что я что-то пропустил, но это выглядит маловероятным, учитывая Interface Stability Promise.
Было разве что изменение внутренней реализации logind с переходом на использование API systemd, в результате чего стало чуть сложнее использовать его отдельно от systemd, но это было вызвано изменениями в ядре и не ломало API logind.
Hephaestus писал(а): ↑16.05.2015 00:54Да. Найдется за несколько лет работы один-два падучих демона таких, что кроме тупого перезапуска, ничем не помочь. Но это именно, что кривой код, это исключение а не правило.
Обеспечивать автоперезапуск для таких случаев, означает возводить их в норму. И отучать человека от анализа ситуации. При всём возможном комфорте такой схемы, правильной её назвать нельзя. Никак.
То есть всякие там monit, аппаратные watchdogи и т. п. - плохо?
Кроме того, ни о каком правиле речь не идёт: напоминаю, что по умолчанию systemd перезапускает лишь те сервисы, которые явным образом настроены для этого.
Для индукции недостаточно одной лишь базы. В данном случае это лишь статистическая оценка, основанная на исчезающе малой выборке.
Hephaestus писал(а): ↑16.05.2015 22:41Посмотрите приведенные цитаты.
Это надёргано из дискуссий о systemd.
Как видите, чего только нет. От обвинений в клевете, зависти и ненависти, до откровенного хамства и неуважения. Часть этих высказываний адресована лично мне.
То есть люди, не принимающие systemd, выглядят этакими агрессивными маразматиками, тормозящими развитие человечества. А между тем, если Вы посмотрите, к примеру, мои сообщения, в них нет ни грамма грубости, агрессии или ненависти.
Так же не бесятся Bizdelnick, alv и другие, кто высказывал недовольство systemd - в их сообщениях не просматривается ненависть или агрессия.
Это я к чему? А к тому, что Вам показалось, противники systemd бесятся - это действительно только показалось.
Ощутимая доля негатива льётся как раз с противоположной стороны.
Нетрудно заметить, что приведённые вами цитаты за исключением первой принадлежат одному человеку. Если я надёргаю подобных высказываний eddy, будет ли это означать, что "ощутимая доля негатива льётся как раз с противоположной стороны"?
Re: Linux без systemd
Да. Ещё иногда и думать надо... Такая вот незадача.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Linux без systemd
Во-первых, я это делал в порядке эксперимента, для сравнения с конфигом, а не для того, чтобы его куда-то приняли. Иными словами, я оставил в скрипте ровно тот функционал, который описан в конфиге.
Во-вторых, это скрипт не мой, а взятый с АрчВики. А мой рабочий скрипт учитывает те моменты, которые Вы изложили в пяти пунктах, кроме, может быть, последнего, за ненадобностью. Более того, у меня реализован запуск rtorrent не через screen, а dtach, от специального пользователя с учётом прав доступа и прибиванием lock-файла при остановке сервиса. Если всё это засунуть в systemd-конфиг, не думаю, что будет сильно проще или короче. Получится примерно такая же "простыня", как и в случае со скриптом.
Одним словом, "скрипт-простыня" - это вообще не аргумент, поскольку получается примерно одинаково.
Я нашёл, как ни странно.
Вот ссылка на тему. Посмотрите стартовый пост.
А вот этот пост я, скажем так, "цитировал".
Да, этот ЛОРовец оказался не разработчиком. Разработчик цитируется в стартовом посте темы.
Я, за давностью времени, перепутал.
Я, в силу своего невежества, не знаю, что это за звери, поэтому затрудняюсь судить, хороши они или плохи.
Данная функция не становится от этого нужнее или полезнее.
Кроме того, если здравый смысл подсказывает, что тупой перезапуск проблему не решает, тогда тем более, не стоит выдавать это за киллер-фичу.
Вот. Вы уловили главное. Всего лишь пара человек с обеих сторон нагнетает негатив. Поэтому не стоит делать вывод обо всех. А между тем, сторонний наблюдатель делает вывод, что "многих бесит Поттеринг". А кого многих-то? Одного-двоих? Не более.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Linux без systemd
Rootlexx , обращаюсь к Вам. В продолжение разговора о API Systemd.
Цитата из письма Самого.
https://plus.google.com/+LennartPoetteringT...sts/8RmiAQsW9qf
Здесь же, кстати, недвусмысленно просматривается то самое навязывание, о котором ранее столько говорили - несмотря на все заявления о модульности и т.п., компоненты systemd прибиты гвоздями, и друг без друга не работают в принципе. Леннарт прямо об этом пишет.
Цитата из письма Самого.
https://plus.google.com/+LennartPoetteringT...sts/8RmiAQsW9qf
Выделение жирным моё. Стало быть, API всё-таки поменяли, причем настолько, что Canonical поимели проблему.So yeah, these things are already part of systemd, and I believe that both are highly relevant on what people want from a Linux-based operating system. If you go for Upstart then you opt out of this. I have serious doubts that Canonical will play catch-up with this so quickly. The last time they tried that they took logind out of the systemd tree and ported it to Upstart. logind of course is one of the components of systemd where we explicitly documented that it is not a component you can rip out of systemd. And of course, just a few months after Canonical did this, things are broken again, and this was to be expected: logind now uses the new cgroups userspace APIs (as mentioned above), and hence it will not run without systemd around. So Ubuntu is stuck with an old and unsupported version of logind. If they advocate this as a solution, then they are in ignorance onthat what they have is already out-of-date. (And yeah, this matters, for example all the nifty stuff that allows Wayland to run nicely without privs is implemented in the newer logind versions, and not in Canonical's forked version).
Здесь же, кстати, недвусмысленно просматривается то самое навязывание, о котором ранее столько говорили - несмотря на все заявления о модульности и т.п., компоненты systemd прибиты гвоздями, и друг без друга не работают в принципе. Леннарт прямо об этом пишет.
Re: Linux без systemd
Hephaestus писал(а): ↑17.05.2015 18:55А мой рабочий скрипт учитывает те моменты, которые Вы изложили в пяти пунктах, кроме, может быть, последнего, за ненадобностью. Более того, у меня реализован запуск rtorrent не через screen, а dtach, от специального пользователя с учётом прав доступа и прибиванием lock-файла при остановке сервиса. Если всё это засунуть в systemd-конфиг, не думаю, что будет сильно проще или короче. Получится примерно такая же "простыня", как и в случае со скриптом.
Ну покажите свой скрипт.
Последний пункт, кстати, очень важен: едва ли многим понравится, если init-скрипт сервиса будет убивать процессы, не принадлежащие сервису.
Ни в приведённом переводе ни в оригинале этого потока сознания не нашёл ничего про сломанный API systemd.
Hephaestus писал(а): ↑17.05.2015 18:55Я, в силу своего невежества, не знаю, что это за звери, поэтому затрудняюсь судить, хороши они или плохи.
Ну так почитайте немного, чтобы иметь хотя бы небольшое представление о предмете разговора.
Hephaestus писал(а): ↑17.05.2015 18:55Данная функция не становится от этого нужнее или полезнее.
Кроме того, если здравый смысл подсказывает, что тупой перезапуск проблему не решает, тогда тем более, не стоит выдавать это за киллер-фичу.
Я вам же уже писал, что хотя тупой перезапуск и не решает проблему периодического падения сервиса, но он решает проблему минимизации простоя.
Кроме того, не слышал, чтобы конкретно эту часть функциональности выдавали прям за киллер-фичу. Я же, кажется, и писал, что это просто возможность, которую было бы неплохо иметь, не более того.
Hephaestus писал(а): ↑17.05.2015 20:07Rootlexx , обращаюсь к Вам. В продолжение разговора о API Systemd.
Цитата из письма Самого.
https://plus.google.com/+LennartPoetteringT...sts/8RmiAQsW9qf
Выделение жирным моё. Стало быть, API всё-таки поменяли, причем настолько, что Canonical поимели проблему.So yeah, these things are already part of systemd, and I believe that both are highly relevant on what people want from a Linux-based operating system. If you go for Upstart then you opt out of this. I have serious doubts that Canonical will play catch-up with this so quickly. The last time they tried that they took logind out of the systemd tree and ported it to Upstart. logind of course is one of the components of systemd where we explicitly documented that it is not a component you can rip out of systemd. And of course, just a few months after Canonical did this, things are broken again, and this was to be expected: logind now uses the new cgroups userspace APIs (as mentioned above), and hence it will not run without systemd around. So Ubuntu is stuck with an old and unsupported version of logind. If they advocate this as a solution, then they are in ignorance onthat what they have is already out-of-date. (And yeah, this matters, for example all the nifty stuff that allows Wayland to run nicely without privs is implemented in the newer logind versions, and not in Canonical's forked version).
(Так и знал, что это про logind...)
Вы ничего не поняли. Дело было так. Как systemd, так и logind используют функциональность ядра Linux под названием cgroups. Раньше они сами управляли своими cgroups, и поэтому Canonical было относительно несложно использовать logind отдельно. Но затем разработчики ядра Linux решили, что управлять cgroups должен лишь один процесс, и в рамках проекта systemd таким процессом стал сам systemd. Из-за этого решения разработчиков ядра logind, будучи отдельным от systemd процессом, больше не мог самостоятельно управлять cgroups. Но эта функциональность ему необходима, поэтому в systemd добавили API для управления cgroups, и logind стал использовать этот API. Никто не мешает создать альтернативную реализацию менеджера cgroups, предоставляющую этот API, что и было сделано Canonical в виде systemd-shim. Как видите, никакие API systemd не ломались.
Hephaestus писал(а): ↑17.05.2015 20:07Здесь же, кстати, недвусмысленно просматривается то самое навязывание, о котором ранее столько говорили - несмотря на все заявления о модульности и т.п., компоненты systemd прибиты гвоздями, и друг без друга не работают в принципе. Леннарт прямо об этом пишет.
Леннарт пишет, что некоторые компоненты systemd (в частности, logind) разрабатываются без заботы о возможности их отделения. См. http://www.freedesktop.org/wiki/Software/s...StabilityChart/.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Linux без systemd
Я не говорил, что ломалось. Я говорил, поменялось. И оно таки поменялось.
Тогда нефиг говорить о модульности. А он говорил. И в статье, которую я читал, об этом есть, и здесь, развенчивая мифы, Леннарт прямо говорит о модульности (см. миф №6 и в некоторой степени миф №1).
Если же компоненты разрабатываются без учёта возможного их отделения, тогда от модульности там - одно название.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Linux без systemd
Да не решает он ничего.
Я уже говорил, что за всё время видел только один сервис, который падал на ровном месте и поэтому помогал тупой перезапуск.
А Вы много знаете таких сервисов?
Если же сервис упал по объективным причинам, то без вмешательства не запустится, тогда простой всё равно обеспечен.
Более того, понадеявшись на эту фичу, можно прозевать момент, и тогда простой будет даже больше, чем мог бы быть без автоперезапуска.
Ну, когда мы пытались выяснить у собеседников, какие профиты даёт systemd, ради чего вообще с ним связываться, в процессе дискуссии назвали ускорение загрузки, агрегатор логов, автоматический перезапуск и простоту конфигов по сравнению со скриптами.
То есть перезапуск был, скажем так, в первой четверке.
Re: Linux без systemd
Hephaestus писал(а): ↑17.05.2015 18:55сторонний наблюдатель делает вывод, что "многих бесит Поттеринг".
Сторонние наблюдатели обычно не то что не участвуют в дискуссиях за systemd, но даже в них не заглядывают. Такая уж есть особенность у разумных людей - не заходить туда, где им не интересно.
Но буде таковых пришлют из ООН и по долгу службы смотреть придётся - они могут увидеть, что весьма многие относятся без восторга... нет, не к Поттерингу, а продукту его жизнедеятельности.
PS Хотя сам Поттеринг - пацан тот ещё, очевидно, что он не жил там, где за базар могут и спросить. Что, собственно, и суть претензий к его личности.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Linux без systemd
Конкретно для этой задачи неважно, ибо rtorrent запускается от специального пользователя и нет смысла запускать ещё один. Тем не менее, это возможно, и да - в моём скрипте останавливается именно тот сервис, который был демоном. Я вносил исправления в скрипт, просто уже забыл.
Вам этого очень хочется?
Пожайлуста. Так выглядит скрипт в моей нынешней системе.
Spoiler
rc.rtorrent
#! /bin/sh
# Author: user
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.
# Do NOT "set -e"
#set -x
RCFILE=/home/alex/.rtorrentdaemonrc
if [ -s $RCFILE ]; then
. $RCFILE
else
echo "Cannot read file options!"
exit 1
fi
export LANG=ru_RU.UTF-8
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Deamon for download torrent-files"
NAME=rtorrent
DAEMON=/usr/bin/dtach
#FULLNAME=/usr/bin/$NAME
FULLNAME=$(which $NAME)
RTSOKET='/tmp/rt0'
DAEMON_ARGS="-n $RTSOKET -r winch -z env TERM=linux $FULLNAME"
PIDFILE=/var/run/$NAME.pid
LOCKFILE=$SESSION/$NAME.lock
# Exit if the package is not installed
[ -x "$FULLNAME" ] || exit 0
#
# Function that starts the daemon/service
#
do_start()
{
sudo -u $USER $DAEMON $DAEMON_ARGS
chmod 660 $RTSOKET
}
#
# Function that stops the daemon/service
#
do_stop()
{
if [ -r $LOCKFILE ]; then
PID=$(cat $LOCKFILE | awk -F '+' '{print $2}')
kill -9 $PID
fi
rm -f $RTSOKET
rm -f $LOCKFILE
}
do_restart()
{
do_stop
sleep 1
do_start
}
case "$1" in
start)
echo "Starting $DESC" "$NAME"...
do_start
;;
stop)
echo "Stopping $DESC" "$NAME"...
do_stop
;;
restart)
echo "Restarting $DESC" "$NAME"...
do_restart
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 3
;;
esac
1. Где LSB-заголовки?
Без понятия. Делал на основе одного из штатных скриптов слаквари, нету их там. И, насколько я понимаю, не нужны.
2. Не указано, что скрипт должен стартовать после поднятия сети. (Впрочем, если rtorrent правильно обрабатывает её отсутствие, то это необязательно.)
Регулируется в другом месте.
3. Нет защиты от повторного запуска.
В явном виде этого нет. Но поскольку запускается через dtach, повторно запустить не даст. Проверено.
4. Не реализовано действие status.
Вот это действительно не реализовано. Мне оно как-то не нужно, поэтому я не делал.
5. При остановке сервиса будут убиты все экземпляры rtorrent, в том числе принадлежащие другим пользователям.
Убивается только тот экземпляр, который запущен демоном. Другие не трогает. Проверено.
Как видите, только четвертый пункт не реализован вообще никак.
Но, как Вы понимаете, это не слишком сложно дописать - в какой-то прошлой версии скрипта это у меня было. А вот если systemd не делает чего-то, что мне нужно, смогу я дописать функционал? Или если делает не так, как мне нужно, смогу я исправить?