Closed hongkongkiwi closed 1 year ago
It's counter intuitive to say the least, yes.
This plugin was contributed by a 3rd party and I've considered on multiple occasions to at least silence the output at boot. The reason it becomes like this is that the plugin use the task
directive with a description. And as you know by now, that calls modprobe in the background. This clumsiness is documented in doc/plugins.md.
Personally I rely on the magic in the modprobe plugin instead, which scans /sys/devices
for modaliases and rarely fails to load the modules I need.
I see, so if using modprobe how do you ensure services are only running after the module is loaded?
Another anachronism with the modules-load plugin is that it only runs in runlevels [2345]
. So yeah, then you'll run into synchronization issues. I actually changed that default yesterday to [S]
(same as the modprobe plugin) and added a set runlevel 2345
directive to the modules-load plugin.
Just pushed the changes (yesterday's and today's).
The modprobe plugin runs in runlevel S, on HOOK_BASEFS_UP
right after the bootmisc plugin. Before any run/task/service have been launched.
With these latest changes, the modules-load plugin's tasks will now run in S as one of the first run/task/services when the Finit state machine starts up, which is right after HOOK_BASEFS_UP
.
I hope these changes help!
I've seen these issues when some modules can't be loaded (the issues are expected, I was doing a test).
I've got the modprobe plugin and the modules load plugin.
When the modules fail to load, it's strange that the modules load plugin says "OK" shouldn't they say "Fail"?
The
initctl cond dump
shows correct failure status.