Summary: | apache-base: Необходимо обеспечить совместимость службы с systemd | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Mike <amike> |
Component: | apache-base | Assignee: | solo <solo> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | at, cas, crux, ender, lakostis, ldv, mike, mithraen, qa_viy, rapter, rider, shaba, solo, viy |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
URL: | http://www.altlinux.org/Systemd_Status_P7 | ||
Bug Depends on: | |||
Bug Blocks: | 28008 |
Description
Mike
2012-11-21 15:23:46 MSK
Проблема собственно не в 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. На нормальных режимах работы это не вызовет увеличения времени запуска и остановки службы, а на относительно слабых и\или загруженных машинах позволит демону успевать стартовать. Подозреваю что уже исправлено. Тем более в сизифе нет apache, есть только apache2. |