[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