Ядро: відмінності між версіями
Sv (обговорення | внесок) Немає опису редагування |
Sv (обговорення | внесок) Немає опису редагування |
||
Рядок 51: | Рядок 51: | ||
* установить переменную run => 0 для этих модулей | * установить переменную run => 0 для этих модулей | ||
* прописать в автозапуск в /etc/rc.local | * прописать в автозапуск в /etc/rc.local | ||
Не забывайте, если конфиг начинается с подчеркивания - это фантом, если вы его отредактируете, скажем, измените переменную run, то при следующем запуске ''perl install.pl -x'' все изменения затрутся, поэтому менять надо файл modules/имя_модуля/create.kernel.имя_модуля.cfg |
Версія за 22:55, 1 липня 2016
NoDeny+ это не только веб-интерфейс. В фоне должны выполняться определенные действия, например, снятие абонплаты, подсчет трафика и т.д. Эти действия выполняет ядро биллинга: файл nokernel.pl
Ядро запускает модули, которые находятся в папке /usr/local/nodeny/kernel/. У каждого модуля есть конфигурационный файл с расширением cfg, в котором прописаны настройки, а также команда: следует или нет запускать данный модуль. Нет смысла запускать те модули, которые вам не нужны. В файле cfg за запуск отвечает переменная run, если она установлена в 1, то модуль запускается, если в 0 - нет:
run => 1,
Обратите внимание на структуру конфига: переменная => значение и в конце запятая.
Давайте получим список всех установленных модулей:
perl /usr/local/nodeny/nokernel.pl -L
YES напротив названия модуля означает, что модуль будет запускаться при старте ядра. Стартовать ядро необходимо так:
perl /usr/local/nodeny/nokernel.pl -d &
Здесь мы запустили ядро вручную и при перезагрузке оно само не запустится, поэтому необходимо прописать его старт в автозагрузку:
echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -d &' >> /etc/rc.local
Если вы ставили NoDeny по документации, то запуск в автозагрузке уже есть и лучше проверить, что нет дублирующего запуска:
cat /etc/rc.local
Если вдруг показало, что есть дубликат запуска nokernel.pl - удалите, но, внимание! На самом деле, допускается запуск нескольких ядер. Более того, иногда это необходимо.
Здесь необходимо слегка описать как работает ядро. Ядро загружает модули и передает управление первому, когда первый закончил работу - второму, после второго - третьему, после последнего - снова первому и т.д. по кругу. Если какой-то из модулей затупит, другие модули вынуждены будут ждать пока томозящий модуль не закончит работу.
Да, есть модули, которые могут тормозить. Например, заглушка. По сути - это вебсервер, написанный на перл. Когда у заблокированного абонента(тов) запущено много программ, которые делают запросы по http, эти все запросы идут на заглушку, которая будет непрерывно отвечать на них и просто не даст время на выполнение других модулей.
Также может забирать ресурсы модуль подсчета трафика (collectors), особенно если включена детализация.
Поэтому такие модули (cap, collectors), которые требуют ресурсы, необходимо запускать отдельной копией ядра:
perl /usr/local/nodeny/nokernel.pl -m=collectors -d &
perl /usr/local/nodeny/nokernel.pl -m=cap -d &
Главное не забыть:
- установить переменную run => 0 для этих модулей
- прописать в автозапуск в /etc/rc.local
Не забывайте, если конфиг начинается с подчеркивания - это фантом, если вы его отредактируете, скажем, измените переменную run, то при следующем запуске perl install.pl -x все изменения затрутся, поэтому менять надо файл modules/имя_модуля/create.kernel.имя_модуля.cfg