1

Когда я перезапускаю свои службы apache, он создает следующий журнал в /var/log/apache2/error.log - и увеличивает размер error.log .

Это поведение по умолчанию или мне не хватает какой-либо конфигурации?

[Mon Jul 29 15:13:25 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.9-4ubuntu2.2 configured -- resuming normal operations
[Mon Jul 29 15:14:24 2013] [notice] caught SIGTERM, shutting down
[Mon Jul 29 15:14:25 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.9-4ubuntu2.2 configured -- resuming normal operations
[Mon Jul 29 15:14:31 2013] [notice] caught SIGTERM, shutting down
[Mon Jul 29 15:14:32 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.9-4ubuntu2.2 configured -- resuming normal operations
[Mon Jul 29 15:14:59 2013] [notice] caught SIGTERM, shutting down
[Mon Jul 29 15:15:00 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.9-4ubuntu2.2 configured -- resuming normal operations
[Mon Jul 29 15:15:02 2013] [notice] caught SIGTERM, shutting down
[Mon Jul 29 15:15:03 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.9-4ubuntu2.2 configured -- resuming normal operations

2 ответа2

2

SIGTERM - это просто сигнал процесса POSIX, который сообщает системе, как остановить процесс; в этом случае Apache. По той ссылке в Википедии:

Сигнал SIGTERM отправляется процессу, чтобы запросить его завершение. В отличие от сигнала SIGKILL, он может быть пойман и интерпретирован или проигнорирован процессом. Это позволяет процессу выполнять хорошее завершение, освобождая ресурсы и сохраняя состояние, если это необходимо. SIGINT почти идентичен SIGTERM.

Что в основном означает, что когда вы говорите Apache stop помощью команды:

sudo service apache2 stop

Или restart помощью этой команды:

sudo service apache2 restart

На самом деле происходит то, что скрипт init.d отправляет процесс SIGTERM и журнал просто отражает это. Все это означает, что он вежливо просит Apache2 прекратить то, что он делает.

Теперь преимущество журнала состоит в том, чтобы просто сообщить вам, что происходит. Например, предположим, что вы находитесь на реальном сервере и находитесь под атакой DDoS. Система может быть настолько перегружена, что вы не увидите, что caught SIGTERM, shutting down запись в журнале сразу. Черт, вся логика «остановить процесс» может просто задохнуться, и это никогда не появится в журнале.

Преимущество этой записи в журнале состоит в том, что система подтверждает, что да, мы получили заказ на отключение Apache, и да, это то, что было сделано.

1

Это совершенно нормально, так как ваш скрипт останавливает работу Apache.

Проверьте ваш /etc/init.d/apache2 или /etc/init.d/httpd скрипт (имя зависит от ОС), вы должны увидеть что-то вроде:

stop() {
        echo -n $"Stopping $prog: "
        killproc -p ${pidfile} -d ${STOP_TIMEOUT} $httpd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}

Команда killproc отправляет SIGTERM процессу httpd.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .