If you dig through the system logs or run systemd-analyze blame to see what is slowing down your Ubuntu Linux boot time, you might notice a background service called ModemManager.service taking several seconds to initialize during every startup.
ModemManager is a DBus-activated daemon that controls mobile broadband (2G/3G/4G/5G) interfaces and connections. If you are running Ubuntu on a laptop with a built-in cellular SIM card slot, or if you use a USB 4G dongle to access the internet, this service is essential. However, if you are running Ubuntu on a standard desktop PC, a virtual machine, or a laptop that only connects to the internet via Wi-Fi and Ethernet, ModemManager is completely useless overhead.
You can safely disable this service to speed up your boot time and slightly reduce your system’s background RAM usage.
How to Disable the ModemManager Daemon
Because ModemManager is managed by systemd, you can disable it permanently using the terminal.
- Open your terminal application (
Ctrl+Alt+T). - First, check the current status of the service to verify it is running:
systemctl status ModemManager.service
- Press
Qto exit the status screen. - Stop the service immediately:
sudo systemctl stop ModemManager.service
- To ensure the service does not automatically start itself up again the next time you reboot your computer, disable it:
sudo systemctl disable ModemManager.service
This removes the symbolic link that tells Ubuntu to start the service during the boot sequence. The next time you restart your machine, ModemManager will be completely ignored, shaving a second or two off your total boot time.
How to Re-Enable It
If you ever buy a USB cellular dongle in the future and find that Ubuntu cannot detect it, you simply need to reverse the process to turn the manager back on:
sudo systemctl enable ModemManager.service
sudo systemctl start ModemManager.service