[Sysadmins] включить coredump для httpd2

Sergey a_s_y на sama.ru
Ср Июн 18 10:52:09 MSK 2014


On Monday 16 June 2014, Sergey wrote:

> coredump надо получить от httpd2. В каком месте и что
> применяется при запуске процессов самого Апаче ?

Качественно закопано... В apachectl2 есть такой код:

start()
{
   initlog $INITLOG_ARGS -n "$BASENAME" -c "limited -n $BASENAME -- $BINARY -k start $OPTIONS $DEFINE" || :
   poststart
   RETVAL=$?
   return $RETVAL
}

man limited как бы есть, есть пример в виде /etc/sysconfig/limits,
и он же уже рабочий конфиг, а там - RLIMIT_SOFT_CORE=0.

Создаём /etc/sysconfig/limits.d/httpd2:

RLIMIT_SOFT_CORE=10000000
RLIMIT_HARD_CORE=10000000

Только это ещё не всё. limited выбирает файл в limits.d в соответствии
с -n $BASENAME, а оно определяется в apachectl2 посредством 

name=`echo $HTTPD | sed -r '\@^.*/[^/[:space:]]+[[:space:]]*$@s@^.*/([^/[:space:]]+)[[:space:]]*$@\1@'`
BINARY=/usr/sbin/$name
BASENAME="$(basename "$BINARY")"

В общем, в limits.d надо симлинков насоздавать на httpd2, в зависимости
от того, какие apache2-httpd-* установлены:

httpd2
httpd2.prefork
httpd2.worker

-- 
С уважением, Сергей
a_s_y на sama.ru


Подробная информация о списке рассылки Sysadmins