Запуск модулей ядра: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
(Новая страница: «У каждого модуля ядра есть параметр автозапуска. Важно понимать как он работает. Главное…»)
 
мНемає опису редагування
 
(Не показані 3 проміжні версії цього користувача)
Рядок 3: Рядок 3:
* при изменении этого параметра модуль ядра не будет ни запускаться ни останавливаться
* при изменении этого параметра модуль ядра не будет ни запускаться ни останавливаться
* параметр автозапуска имеет значение только когда запускается ядро без параметра -m
* параметр автозапуска имеет значение только когда запускается ядро без параметра -m
Параметр -m указывает запустить ядро с  '''одним конкретным''' модулем. Если просто запустить ядро, например, так:
<syntaxhighlight lang="bash">
perl /usr/local/nodeny/nokernel.pl -v
</syntaxhighlight>
оно запустит все модули, у которых прописан автозапуск. При этом все они будут выполняться последовательно по кругу. Если же какой-то из модулей может "тупить", например, он обращается по API к внешнему сервису, то он соответственно может приводить к тому, что иные модули будут выполнять свои задачи позже запланированного (подтупливать). В этом случае, есть смысл убрать параметр автозапуска для таких тупящих модулей, а запускать их отдельно. Таким образом, у вас может быть запущено несколько процессов nokernel (один для модулей в одном потоке, иные персонально для каждого модуля):
<syntaxhighlight lang="bash">
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 &
</syntaxhighlight>
<br>
Если вы убираете автозапуск модуля, модуль будет продолжать работать пока вы не рестартуете ядро

Поточна версія на 14:08, 22 вересня 2023

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

  • при изменении этого параметра модуль ядра не будет ни запускаться ни останавливаться
  • параметр автозапуска имеет значение только когда запускается ядро без параметра -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 &


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