Рейтинг:0

Как запустить службу после загрузки модуля ядра

флаг in

Я ломал голову над этим последние несколько часов. На одной из моих машин Intel-rapl-msr Драйвер глючит, и его перезагрузка решает проблему. Я думал, что могу тривиально создать службу, которая делает это при загрузке. Но я не могу загрузить службу после загрузки драйвера.

[Ед. изм]
Описание=Перезагрузить intel-rapl-msr
Требуется = systemd-modules-load.target
WantedBy=многопользовательская.цель

ExecStart=/nix/store/wqjkhyyffqdbx767vlqklzi12ln8j3pv-unit-script-cpu-script-start/bin/cpu-script-start

Где скрипт в ExecStart просто содержит:

rmmod intel_rapl_msr
модпробе intel_rapl_msr

Таким образом, служба выходит из строя при загрузке с сообщением:

mmod: ОШИБКА: модуль intel_rapl_msr в данный момент не загружен

Итак, можно ли заставить службу запускаться после загрузки этого модуля ядра?

Любая помощь приветствуется!

stark avatar
флаг mu
Удалите rmmod из вашего скрипта и добавьте в conf: `ExecStartPre=-rmmod intel_rapl_msr` Знак "-" означает игнорировать ошибку.
John Smith avatar
флаг in
@stark Но я не хочу игнорировать неудачи. Драйвер всегда загружается при загрузке.
Рейтинг:0
флаг in

Так что теперь я просто опрашиваю lsmod это работает, но это немного грязно:

пока ! lsmod | grep -q intel_rapl_msr;
делать
  echo "intel_rapl_msr еще не загружен... жду 5 секунд"
  спать 5
сделано
эхо "найдено intel_rapl_msr"
rmmod intel_rapl_msr
модпробе intel_rapl_msr

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.