On Mon, Mar 19, 2012 at 16:02, Pawel Pastuszak <pawelpastus...@gmail.com> wrote: > I am not sure if i made my self clear, what i am doing is and custom distro > for an custom embedded device, which i want to have the ability to upgrade > the system in runtime, which i need to ability to to stop my custom driver > modules for the upgrade. So this is why i was asking what is the best way of > starting and stop modules. > > Unless what your saying is replace the file and just reboot, instead of stop > the service and replace then start it again.
Oh, there is no general advice in the systemd context, I guess. It's also not systemd specific, and mostly handled inside the kernel. As mentioned, we generally do not support at all any kernel-module unloading with systemd-native infrastructure, but that should be no reason for custom logic inside a service to do that. Usually you need to stop the service/application using the device, and then you can unload the driver module. Most modules can only be unloaded when they are not in use. The most common exception is network driver modules, which for historic reasons do not pin the modules in use. This can either be managed by completely stopping and restarting the service, or by sending specific commands to a service to release the open()ed devices. Alternatively, if the service/app can handle hot-device removal, you can just unbind the driver from the device in /sys/bus/*/drivers/*/{bind,unbind}, and after that unload the module. But the service/app needs to be able to cope with devices disappearing; many services/apps don't. Kay _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel