Запуск модулей ядра

Матеріал з NoDeny
Версія від 14:08, 22 вересня 2023, створена Sv (обговорення | внесок)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

У каждого модуля ядра есть параметр автозапуска. Важно понимать как он работает. Главное:

  • при изменении этого параметра модуль ядра не будет ни запускаться ни останавливаться
  • параметр автозапуска имеет значение только когда запускается ядро без параметра -m

Параметр -m указывает запустить ядро с одним конкретным модулем. Если просто запустить ядро, например, так:

perl /usr/local/nodeny/nokernel.pl -v

оно запустит все модули, у которых прописан автозапуск. При этом все они будут выполняться последовательно по кругу. Если же какой-то из модулей может "тупить", например, он обращается по API к внешнему сервису, то он соответственно может приводить к тому, что иные модули будут выполнять свои задачи позже запланированного (подтупливать). В этом случае, есть смысл убрать параметр автозапуска для таких тупящих модулей, а запускать их отдельно. Таким образом, у вас может быть запущено несколько процессов nokernel (один для модулей в одном потоке, иные персонально для каждого модуля):


perl /usr/local/nodeny/nokernel.pl -d &
perl /usr/local/nodeny/nokernel.pl -d -m=services &
perl /usr/local/nodeny/nokernel.pl -d -m=balance &


Если вы убираете автозапуск модуля, модуль будет продолжать работать пока вы не рестартуете ядро