люблю systemd

Feb 29, 2016 19:43

Старт демона производится таким образом:

start-stop-daemon --start --background --quiet --pidfile $PIDFILE --exec $DAEMON --chuid $USER --umask $MASK --test > /dev/null || return 2

Совершенно типовая строчка времён sysv-init.

А вот что происходит, если убрать --background и devnull:

Would start /usr/bin/deluged (as user debian-deluged[112], and ( Read more... )

systemd

Leave a comment

Comments 44

alexkuklin February 29 2016, 17:59:11 UTC
полагаю, что просто был создан файл при запуске демона от рута, а теперь в него демон от пользователя писать не может.

Reply

amarao_san February 29 2016, 18:05:54 UTC
Я не про отладку конкретной делюги, я про проблему с тем, что логи идут в /dev/null, и больше им некуда, ибо --background.

Reply


tzirechnoy February 29 2016, 17:59:54 UTC
Выкидыванием нахер говнищща всякого. Особенно которое на питоне с гтк, это ужэ диагноз. Ну, а то, что оно ещё и демонизироваться как обычно не умеет -- ужэ следствие диагноза.

Ну и да, так и решалось, чо. Вставлением strace или правкой init-скрипта.

Reply

amarao_san February 29 2016, 18:06:30 UTC
Расскажи мне про приличный сервер-клиентский торрент-трекер с нативной мордой.

Reply

tzirechnoy February 29 2016, 18:16:45 UTC
Трэкер? С мордой? Да ну его нахер, зачем мне его морда, цэловаться с ним что ли?
У трэкера в худшэм случае нужна статистика, да и то странно требовать её нативной.

Reply

amarao_san February 29 2016, 18:28:45 UTC
Пардон, торрент-клиента, разумеется.

А нужен он, чтобы адекватно magnet'ы из браузера подхватывать.

Reply


angry_elf February 29 2016, 19:31:57 UTC
> Скажите, как во времена sysv-init такое отлаживалось и отлавливалось?

В openrc - прекрасно. С флагом -d пошаговый лог запуска скрипта.

Reply

amarao_san February 29 2016, 22:23:44 UTC
И что тебе даст пошаговый запуск скрипта, если демонизирующийся товарищ хочет что-то сказать на stdout, но не может?

Reply

angry_elf March 2 2016, 09:58:55 UTC
Поможет найти, например, тот злосчастный вывод в /dev/null.

Или я руками повторю всё то, что делает инит-скрипт и найду сам.

Регулярно пользуюсь -d, ни разу не подводил.

Reply


anonymous February 29 2016, 22:01:44 UTC
А я очень systemd люблю когда он сваливается в корку от SIGFPE или SIGSEGV. Ставя систему в позу зю.

Reply

amarao_san February 29 2016, 22:24:17 UTC
Ни разу не видел такого.

Reply

anonymous February 29 2016, 23:18:20 UTC
В jessie его можно воспроизводимо поставить в эту позу банальным systemctl daemon-reload вперемежку с daemon-reexec в цикле по вкусу.
Или удалением пакета systemd-cron 1.3.1+ds1-2 (в более новых подложили соломку).
Ну а живущие на bleeding edge могут наслаждаться регулярно поломатым ipv6 и иже с ним.
Не, задумка замечательная. Только уж слишком монструазная, склонная к NIH, и все яйца в одной корзине.

Reply

tzirechnoy March 2 2016, 12:01:42 UTC

>задумка замечательная.

Традицыонно, да. Как у и pulseaudio, например. Да в некотором роде и у journald.

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

Но Леннарт делает говно, стабильно, раз от раза. Поскольку кодер он вполне себе кодер, а архитектор -- никакой.

И ладно бы просто сделал 100500й демон для звука или пятую инит-систему. Но как это всё потом проталкивается через RH и прочих толстосумов -- это ужэ неприятно, на самом деле.

Reply


ext_2367149 March 1 2016, 05:43:33 UTC
Во времена sysv-init оно не ломалось, а изпакетный стартап скрипт просто работал.

В же сложных случаях ("я поставил ночной билд и запустил от рута, всё сломалось") -
так и отлаживалось: убирали --background и devnull, смотрели чего творится.

Reply

amarao_san March 1 2016, 10:57:37 UTC
Я бы радостно сказал "да", если бы лично не угробил ночь, отлаживая race condition между mount'ом и подъёмом сети.

А во времена systemd такой проблемы вообще не было бы (с поиском как отлаживать) - оно и так и так захватывает stdout/err демона и пишет его в лог. Там бы в status всё было написано и фиксилось бы в пол-пинка.

Reply

ext_2367149 March 1 2016, 15:02:47 UTC
Ну, вон, в том же debian напряжённо пилят racing между стартом сети, rpcbind и nfsmounts. Почему-то не работает. Иногда. Хотя всё на systemd, и казалось бы.
Или, вон, внутрях systemd на протяжении трёх релизов напряжённо искали проблему с deadlock между dbus и journald (с не менее восхитительной историей поисков).

Reply

tzirechnoy March 2 2016, 12:06:02 UTC

>rpcbind и nfsmounts.

Некрофилы!

Reply


Leave a comment

Up