Странная загрузка процессора при запуске сервера из под runit

Started by kdmal, January 18, 2013, 08:47:29 PM

Previous topic - Next topic

kdmal

Доброго времени суток. Серверная часть разменещна на FreeBSD 9.1-STABLE #91 r245530+b7bf841.

Собиралась из исходников:
./configure --prefix=/opt/netxms --with-agent --with-server --with-pgsql

При запуске в консоле:
./netxmsd -c /opt/etc/netxms/netxmsd.conf
Процесс стартует и тихо себе живет, минимально потребляя CPU

Так же тихо живет при запуске как демон:
./netxmsd -d -c /opt/etc/netxms/netxmsd.conf
Процессор не кушает

При запуске из-под runit (http://smarden.org/runit/) процесс съедает ровно одно ядро на 100%. В runit запускается так:
% cat /services/netxms-server/run
#!/bin/sh
exec 2>&1

command="/opt/netxms/bin/netxmsd"
command_args="-c /opt/etc/netxms/netxmsd.conf"

/usr/local/sbin/chpst -u netxms  ${command} ${command_args}


В какую сторону нужно копать?

PS: в консоли ест мало процессора, как при запуске от root так и от пользователя netxms, при запуске из runit - независимо от пользователя съедает ровно одно ядро

Alex Kirhenshtein

Проблема в том, что при запуске под runit, readline получает EOF на каждый попытку прочитать консоль – чем и занимает одно ядро полностью.
В 1.2.6 я добавил параметр "-q", который полностью отключает интерактивную консоль.
Как временное решение - отключить консоль в коде и пересобрать сервер. Diff в аттаче.