Systemd

核心模組載入後如何執行服務

  • September 27, 2021

在過去的幾個小時裡,我一直在為此頭疼。在我的一台機器上,intel-rapl-msr驅動程序有問題,重新載入它可以解決問題。我以為我可以輕鬆地創建一個在啟動時執行此操作的服務。但是驅動程序載入後我無法載入服務。

[Unit]
Description=Reload intel-rapl-msr
Requires=systemd-modules-load.target
WantedBy=multi-user.target

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

其中的腳本ExecStart僅包含:

rmmod intel_rapl_msr
modprobe intel_rapl_msr

這樣,服務在啟動時會失敗並顯示以下消息:

mmod: ERROR: Module intel_rapl_msr is not currently loaded

那麼是否可以在載入此核心模組後強制服務執行?

任何幫助表示讚賞!

所以現在我只是用它進行投票,lsmod但它有點臟:

while ! lsmod | grep -q intel_rapl_msr;
do
 echo "intel_rapl_msr not loaded yet... sleeping for 5 seconds"
 sleep 5
done
echo "found intel_rapl_msr"
rmmod intel_rapl_msr
modprobe intel_rapl_msr

引用自:https://serverfault.com/questions/1077885