Bug 28026 - apache-base: Необходимо обеспечить совместимость службы с systemd
: apache-base: Необходимо обеспечить совместимость службы с systemd
Status: NEW
: Sisyphus
(All bugs in Sisyphus/apache-base)
: unstable
: all Linux
: P3 normal
Assigned To:
:
: http://www.altlinux.org/Systemd_Statu...
:
:
: 28008
  Show dependency tree
 
Reported: 2012-11-21 15:23 by
Modified: 2013-10-11 20:10 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2012-11-21 15:23:46
Подготовить корректный unit-файл.

Подробности по ссылке: http://www.altlinux.org/Systemd_Status_P7
------- Comment #1 From 2013-10-11 20:10:01 -------
Проблема собственно не в systemd. 
Рассказываю методологию:
1)Добавляю в /usr/sbin/apachectl2 в секцию start() в самом начале "sleep 10", а
так же модифицирую заголовок в "#!/bin/sh -x", что бы отследить в логах ход
выполнения скрипта.
2)При загрузке обнаруживается, что poststart() обнаруживает успешный запуск
службы и создает lock-файл только на последней итерации цикла.
3)Количество проходов этого самого цикла определяет $LOOPSSTART, который можно
настроить в /etc/sysconfig/httpd2. В дефолтном варианте параметр задает 10
проходов.
4)Убираем слип, $LOOPSSTART увеличиваем до 100, перезагружаемся и видим:
...
окт 11 22:30:32 media.localdomain _apachectl2[4290]: + usleep 300000
окт 11 22:30:32 media.localdomain _apachectl2[4290]: + briefstatus
окт 11 22:30:32 media.localdomain _apachectl2[4290]: + RETVAL=3
окт 11 22:30:32 media.localdomain _apachectl2[4290]: + (( i=((89-1))  ))
окт 11 22:30:32 media.localdomain _apachectl2[4290]: + (( 88>0 ))
окт 11 22:30:32 media.localdomain _apachectl2[4290]: + usleep 300000
окт 11 22:30:33 media.localdomain _apachectl2[4290]: + briefstatus
окт 11 22:30:33 media.localdomain _apachectl2[4290]: + touch
/var/lock/subsys/httpd2
окт 11 22:30:33 media.localdomain _apachectl2[4290]: + RETVAL=0
окт 11 22:30:33 media.localdomain _apachectl2[4290]: + break
окт 11 22:30:33 media.localdomain _apachectl2[4290]: + return 0
То есть для нормального старта не хватает совсем чуть-чуть, как бы 12 проходов
вместо 10.

Говорить твердо о причинах такого необычно долгого старта я не берусь, но есть
2 предположения:
1)За время старта апача успевает инициализироваться только "systemd[1]:
Starting Console Manager...", да и то, она отрабатывает раньше заходов в цикл
вообще, что не должно влиять, даже если бы этот демон был зависимостью для
апача.
2)В этот момент времени параллельно отрабатывает prefdm, запускающий иксы и при
этом сильно нагружающий систему. Надо пологать, что им просто на двоих не
хватает "мегагерцофф", что бы стартануть за 10 проходов цикла, а за 12
успевает.

Решение:
Предлагаю увеличить в  /etc/sysconfig/httpd2 дефолтное значение $LOOPSSTART. На
нормальных режимах работы это не вызовет увеличения времени запуска и остановки
службы, а на относительно слабых и\или загруженных машинах позволит демону
успевать стартовать.