Как перенаправить stdout и stderr демона с помощью start-stop-daemon(8)?

Эта встроенная функция есть в исходном коде. Вы можете увидеть код в файле src / gtkprint.c в функции cb_draw_page () :

pango_layout_set_text(layout_lh, page_title, -1);
...
pango_cairo_show_layout(cr, layout_lh);
...
page_text = g_strdup_printf("%d / %d", page_nr + 1, n_pages);
layout_rh = gtk_print_context_create_pango_layout(ctx);
...
pango_cairo_show_layout(cr, layout_rh);

Закомментируйте хотя бы два pango_cairo_show_layout ( ) Здесь показаны вызовы .

3
02.10.2016, 00:10
1 ответ

Попытка передать магические опции через различные уровни сценариев оболочки - совершенно неправильный путь для этого в операционной системе systemd Linux.

systemd уже регистрирует стандартные выходы/ошибки сервисов, которые автоматически генерируются генератором сервисов "sysv", как этот. Генератор служб "sysv" создал exim4.service (где-то под /run/systemd), который вызывает ваш /etc/init.d/exim4 в качестве службы.

Никакого делегирования не происходит. Ваши скрипты rc не отвечают за службу в первую очередь. Они просто выполняются как удобные прокси для него.

Итак, что вам нужно сделать, это посмотреть на уже захваченный вывод журнала для службы exim4.service. Это будет либо в журнале, либо в syslog, который вы настроили на работу с журналом.

Для последнего варианта делайте все, что подходит для вашего варианта syslog. В первом случае обратите внимание, что systemctl показывает вам последние записи журнала для службы, когда вы запускаете его

systemctl status exim4.service
с соответствующими привилегиями (суперпользователь или член группы systemd-journal). Вы также можете просмотреть записи журнала для службы с момента последней загрузки (если журнал еще не выключен) с помощью
journalctl -u exim4.service -e -b

exim при надлежащем управлении службой

Как ни странно, все эти rc скриптовые чудовища можно заменить довольно короткими exim4-queue. service, exim4-smtp-relay@.service+exim4-smtp-relay.socket, and exim4-smtp-submission@.service+exim4-smtp-submission.socket service and socket units.

Также обратите внимание, что это ложь, что exim смешивает "foreground" и "debug"/"verbose". Его опция -bdf является явно не "деймонизирующей" версией -bd, хотя для ее вызова в качестве деймона "активируемого сокетом" для каждого соединения (как в примерах в дальнейшем чтении), где инструменты управления сервисом обрабатывают слушающий сокет, в любом случае нужно использовать -bs, а не -bdf.

Дальнейшее чтение

2
27.01.2020, 21:25

Теги

Похожие вопросы