The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск системы инициализации sysvinit 2.89, opennews (ok), 29-Мрт-18, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


35. "Выпуск системы инициализации sysvinit 2.89"  +3 +/
Сообщение от Аноним (-), 30-Мрт-18, 06:09 
> любители этого самого syvinit вы скрипты инициализации для него писали? скорей бы
> помер уже, ей богу.

Писали. Для нормальных демонов скрипт пишется в пару строк - копируется файл skeleton и добавляется имя демона. Увсё. А остальные демоны дерьмо на палочке просто. Если почитать документацию, демон должен делать ВСЮ работу а не система иницализации. У меня всё.

Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

51. "Выпуск системы инициализации sysvinit 2.89"  –1 +/
Сообщение от Gemorroj (ok), 30-Мрт-18, 08:23 
А можно ссылку на инфу, что демон должен делать "всю" работу? Правда интересно разобраться где чья ответственность.
А так в жизни дерьма на палочке хватает.
Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск системы инициализации sysvinit 2.89"  +3 +/
Сообщение от dimcha (??), 30-Мрт-18, 09:43 
https://stackoverflow.com/questions/3095566/linux-daemonize
Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск системы инициализации sysvinit 2.89"  –1 +/
Сообщение от Аноним (-), 30-Мрт-18, 09:36 
Бгг. Ну вот объясни, например, ffmpeg что он ненормальный демон. Что, через start-stop-daemon объяснять будешь? А потом сверху monit прикручивать, чтобы перезапускался при падении и ресурсы ограничивать, потому что этих недодемонов на одном сервере может быть десятки?
Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

60. "Выпуск системы инициализации sysvinit 2.89"  +2 +/
Сообщение от Аноним (-), 30-Мрт-18, 09:47 
Ну вот возьмём любой демон:

case "$1" in
start)  log_daemon_msg "Starting periodic command scheduler" "cron"
        start_daemon -p $PIDFILE $DAEMON $EXTRA_OPTS
        log_end_msg $?
        ;;
stop)   log_daemon_msg "Stopping periodic command scheduler" "cron"
        killproc -p $PIDFILE $DAEMON
        RETVAL=$?
        [ $RETVAL -eq 0 ] && [ -e "$PIDFILE" ] && rm -f $PIDFILE
        log_end_msg $RETVAL
        ;;
restart) log_daemon_msg "Restarting periodic command scheduler" "cron"
        $0 stop
        $0 start
        ;;
reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "cron"
        # cron reloads automatically
        log_end_msg 0
        ;;
status)
        status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
        ;;
*)      log_action_msg "Usage: /etc/init.d/cron {start|stop|status|restart|reload|force-reload}"
        exit 2
        ;;
esac
exit 0

Это всё, что скрипт инициализации должен делать. Всем остальным (созданием файлов, проверкой пидов) должен заниматься демон а никак не скрипт инициализации. Кстати, это касается любой системы инициализации которая следует POSIX. systemd не следует POSIX, поэтому пофиг как бэ.
Насчёт перезапуска - это проблема конкретной реализации sysvinit. RunIt умеет, OpenRC тоже, а для ограничения ресурсов есть cgroups.

Ответить | Правка | Наверх | Cообщить модератору

112. "Выпуск системы инициализации sysvinit 2.89"  –1 +/
Сообщение от Аноним (-), 30-Мрт-18, 19:57 

> Это всё, что скрипт инициализации должен делать. Всем остальным (созданием файлов, проверкой
> пидов) должен заниматься демон а никак не скрипт инициализации. Кстати, это
> касается любой системы инициализации которая следует POSIX. systemd не следует POSIX,
> поэтому пофиг как бэ.

Не все так просто, вон системД присматривает за всеми потомками, правда тоже через cgroups (по моему).
> Насчёт перезапуска - это проблема конкретной реализации sysvinit. RunIt умеет, OpenRC тоже,
> а для ограничения ресурсов есть cgroups.

Продолжу, могу ошибаться, но мне кажется, что когда Ленарт ходил пешком под стол, demontools уже умел перезапуск. С инструментами даже самых "неподдающихся" "демонов" мог запустить и отслеживать состояние. Наверное не состояние а "смерть" процесса. Но если необходимо отслеживать "состояние" демона, то это необходимо ваять отдельный демон, который будет "общаться" с подопечным на понятном им обоим "языке", и заодно будут развлекаться оба ;)  


Ответить | Правка | Наверх | Cообщить модератору

69. "Выпуск системы инициализации sysvinit 2.89"  +2 +/
Сообщение от Andrey Mitrofanov (?), 30-Мрт-18, 11:08 
>> любители этого самого syvinit вы скрипты инициализации для него писали? скорей бы
>> помер уже, ей богу.
> Писали. Для нормальных демонов скрипт пишется в пару строк -

+Не то шаа эти юнит-фейл http://jdebp.eu/FGA/run-scripts-and-service-units-side-by-si... портянки.

>копируется файл
> skeleton и добавляется имя демона. Увсё.

Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

78. "Выпуск системы инициализации sysvinit 2.89"  –1 +/
Сообщение от Пользователь Debian (?), 30-Мрт-18, 11:45 
Дружище, как раз требование к тому, что всё должен делать демон
(включая чудесные танцы с даблфорком и сетсидом, ручным управлением
пидфайлом, cd в /, переоткрытием стандартных I/O-стримов в /dev/null),
появилось банально из-за того, что в своё время вот это всё придумали
в виде костыля для изготовления процессов, которые могут работать
в фоне (уверен, Вы читали Read Book, и вычитали оттуда, что daemon
это портмоне от Disk And Execution MONitor).

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

В принципе, если смотреть на это как на хак, то это красивый хак,
чоужтам, но если смотреть на это с точки зрения архитектуры,
то это конструкция из навоза и палок.

А чтобы прочувствовать это всё лучше, стОит попробовать написать
программу, от которой Вам бы хотелось, чтоб она и интерактивно
на Вашей консоли, и в фоне работала нормально. Так вот Вы вдруг
внезапно обнаружите, что объём потребных для этого приседаний
ненормально высок. И вдруг найдёте, что даже написали libslack,
чтобы не выписывать указанные приседания самостоятельно.

А потом Вы поймёте, что на самом деле куда логичнее просто делать
так, что у Вас есть обычная программа, и супервизор, который её
способен тривиально "обернуть", чтобы сделать из неё демона.
Добро пожаловать в http://www.libslack.org/daemon/ , runit и т.п.

Теперь ещё стоит подумать о том, а как, например, контролировать
ресурсы системы, которые отжираются всей иерархией процессов с
одним каким-то демоном "в корне" — например, с веб-сервером или
RPC-сервером. SYS V init не решает эту проблему вообще никак,
и не может.

Ну, и остаётся сделать один маленький шажок — мысленно объединить
эти две идеи, и понять, что полноценный супервизор это не NIH-синдром,
это реально удобно — для тех, кому работать надо, а не скилл
баш-шиткодинга прокачивать по вечерам после универа.

Да, *реализация* systemd вызывает ряд вопросов (у кого-то — массу вопросов),
но необходимость в такой штуке давно видна, а реально работающих
(за пределами локалхоста) альтернатив — нет, к сожалению.

Кстати, камрад Russ Allbery из Дебиана описал ситуацию предельно взвешенно
и спокойно, рекоммендую: https://lists.debian.org/debian-devel/2016/08/msg00604.html

Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

91. "Выпуск системы инициализации sysvinit 2.89"  –1 +/
Сообщение от Gemorroj (ok), 30-Мрт-18, 13:17 
очень спасибо! то, что чувствуется в 5 точке описали грамотным языком)
я не фанат systemd, но когда начинаешь реально проходить через все эти дебри с форканьем процессов и обязательным мониторингом состояния, то хочется просто забить на все и просто использовать тот самый systemd.
Ответить | Правка | Наверх | Cообщить модератору

114. "Выпуск системы инициализации sysvinit 2.89"  –1 +/
Сообщение от Аноним (-), 30-Мрт-18, 20:30 
Вы тут рассказали историю о том, что "граница" полномочий и обязанностей должна проходить вот здесь, и не где более (возможно это мое мнение ошибочное, ибо не читал но осуждаю ;)
Но вопрос должен быть решен проще, кто то сможет реализовать для своего демона функционал демонизации и/или супервизора, а у кого то на это нет времени и/или желания. Товарищ Леннарт взялся помочь. Били ли у него иные цели, это вопрос не только к нему, а и к Матрице. Посмотрим, что из этого получится.

Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

160. "Выпуск системы инициализации sysvinit 2.89"  +/
Сообщение от freehckemail (ok), 04-Апр-18, 04:20 
Эх, а как хорошо начинал вроде бы даже по делу говорить.
Но в итоге оказалось, что мы просто готовили сэндвич гитлера. :)

Безотказный вариант.
- "гипервизор штука нужная" -- факт
- "баш гoвно" -- вброс
- "к реализации systemd есть масса вопросов" -- факт
- "у systemd нет реально работающих альтернатив" -- вброс
- "Russ Allbery" -- больше фактов по ссылке

Какая же ты всё-таки скотина. :)

PS: Не, вообще хорошо сработал. Уважаю. Я даже не сразу понял, в чём подвох.

Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру