[sisyphus] Особенность systemd?
Sergei Epiphanov
serpiph на nikiet.ru
Ср Окт 17 17:47:03 MSK 2012
On 17 октября 2012 15:56 Alexey Shabalin wrote:
> >7 октября 2012 г., 15:41 пользователь Sergei Epiphanov <serpiph на nikiet.ru>
написал:
> > Разбираясь с syslogd и apachectl2, наткнулся, похоже, на один интересный
> > момент: если systemd запускает init-скрипт и он почему-то останавливается
> > с
> > ошибкой, то systemd, видимо, принудительно глушит все процессы, которые
>
> > появляются в данной группе процессов. В частности:
> Да, это нормально. По умолчанию KillMode=control-group.
> man systemd.kill
Понятно, спасибо. До чего же путаный man на systemd. Нигде нет общего обзора
манов программы (кроме apropos). Только целенаправленный поиск позволил выйти
на systemd.kill.
> > 1) глушит процесс httpd2, запускаемый из apachectl2 (см. #27856) Запуск
> > apachectl2 из командной строки тоже выдаёт ошибку, но httpd2 остаётся в
> > работе
> >
> > 2) глушит процесс syslogd при множественном перезапуске (#27868). Анализ
> > логов показывает, что в какой-то момент перезапуска тест сообщает о
> > неработающем syslogd, в результате глохнет syslogd, который только
> > пытается подняться.
> Ну так повесьте кто-нибудь баг на syslogd, что он не работает с systemd.
Уже повесил.
Ещё интересно. На одной машине в /etc/sysconfig/syslogd в строке
SYSLOGD_OPTIONS в строке под кавычками был конечный пробел, а в другой нет. И
под systemd на одной машине демон не поднялся (где пробел), а на другой
поднялся:
SYSLOGD_OPTIONS='-u syslogd -j /var/resolv '
и
SYSLOGD_OPTIONS='-u syslogd -j /var/resolv'
Получил:
# systemctl status syslogd.service
syslogd.service - Syslog daemon
Loaded: loaded (/etc/systemd/system/syslogd.service; enabled)
Active: failed (Result: exit-code) since Wed, 17 Oct 2012 17:40:25
+0400; 2s ago
Process: 11526 ExecStart=/sbin/syslogd -d $SYSLOGD_OPTIONS
(code=exited, status=1/FAILURE)
Process: 11522 ExecStartPre=/bin/echo /sbin/syslogd -d
$SYSLOGD_OPTIONS (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/syslogd.service
Oct 17 17:40:25 server systemd[1]: Starting Syslog daemon...
Oct 17 17:40:25 server echo[11522]: /sbin/syslogd -d -u syslogd -j /var/resolv
Oct 17 17:40:25 server systemd[1]: Started Syslog daemon.
Oct 17 17:40:25 server syslogd[11526]: usage: syslogd [-drvh] [-l hostlist] [-
m markinterval] [-n] [-p path]
Oct 17 17:40:25 server syslogd[11526]: [-s domainlist] [-f conffile] [-i IP
address] [-u username]
#
и
# systemctl status syslogd.service
syslogd.service - Syslog daemon
Loaded: loaded (/etc/systemd/system/syslogd.service; enabled)
Active: active (running) since Wed, 17 Oct 2012 17:31:35 +0400; 5s
ago
Main PID: 14661 (syslogd)
CGroup: name=systemd:/system/syslogd.service
└ 14661 /sbin/syslogd -d -u syslogd -j /var/resolv
Oct 17 17:31:35 comp syslogd[14661]: 32: 3 3 3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3 3 3 3 FILE: /var/log/syslog/alert
Oct 17 17:31:35 comp syslogd[14661]: 33: 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 WALL:
Oct 17 17:31:35 comp syslogd[14661]: 34: X X X X X X X 7 7 X X X
X X X X X X X X X X X X X FILE: /var/log/syslog/spooler
Oct 17 17:31:35 comp syslogd[14661]: 35: X X X X X X X X X X X X
X X X X X X X X X X X FF X FILE: /var/log/syslog/boot
Oct 17 17:31:35 comp syslogd[14661]: 36: FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF TTY: /dev/tty12
Oct 17 17:31:35 comp syslogd[14661]: logmsg: syslog.info<46>, flags 4, from
epiphanov, msg syslogd 1.4.1: restart.
Oct 17 17:31:35 comp syslogd[14661]: Called fprintlog, logging to FILE
/var/log/syslog/messages
Oct 17 17:31:35 comp syslogd[14661]: Called fprintlog, logging to TTY
/dev/tty12
Oct 17 17:31:35 comp syslogd[14661]: syslogd: restarted.
Oct 17 17:31:35 comp syslogd[14661]: Debugging disabled, SIGUSR1 to turn on
debugging.
#
Кстати, после исправления в первом случае вывод программы другой:
# systemctl status syslogd.service
syslogd.service - Syslog daemon
Loaded: loaded (/etc/systemd/system/syslogd.service; enabled)
Active: active (running) since Wed, 17 Oct 2012 17:41:19 +0400; 5min
ago
Main PID: 11547 (syslogd)
CGroup: name=systemd:/system/syslogd.service
└ 11547 /sbin/syslogd -d -u syslogd -j /var/resolv
Oct 17 17:41:19 server syslogd[11547]: Called allocate_log, nlogs = 25.
Oct 17 17:41:19 server syslogd[11547]: cfline(cron.=warning
-/var/log/cron/warnings)
Oct 17 17:41:19 server syslogd[11547]: symbolic name: warning ==> 4
Oct 17 17:41:19 server syslogd[11547]: symbolic name: cron ==> 72
Oct 17 17:41:19 server syslogd[11547]: leading char in action: /
Oct 17 17:41:19 server syslogd[11547]: filename: /var/log/cron/warnings
Oct 17 17:41:19 server syslogd[11547]: Called allocate_log, nlogs = 26.
Oct 17 17:41:19 server syslogd[11547]: cfline(cron.err
/var/log/cron/errors)
Oct 17 17:41:19 server syslogd[11547]: symbolic name: err ==> 3
#
Интересно, в чем разница.
--
С уважением, Епифанов Сергей
Подробная информация о списке рассылки Sisyphus