Upstart was replaced with systemd.
As a system administrator or power user, many (though not all) of the changes you will observe when upgrading or migrating from 14.04 LTS to 16.04 LTS are due to which init system is used. This includes the specific change you've mentioned where /etc/rc.local
is no longer present or used by default.
- 14.04 LTS used Upstart. It was not the last release that did, but it was the last LTS release that did.
- 16.04 LTS uses systemd, as do all currently supported Ubuntu releases.
For general information about why this change was made and what the practical differences are, see:
For even more general information, you can read release notes (which is a good idea). Potentially the release notes of all intervening releases could be useful for you to read, but I particularly suggest:
Regarding /etc/rc.local
specifically, you may want to look at other mechanisms systemd provides to allow you to define services that run on startup and do what you need done, but you can have systemd run the commands in /etc/rc.local
.
The typical way to make systemd use /etc/rc.local
is to enable the rc-local
service, which is provided for compatibility. As explained in How to Enable /etc/rc.local with Systemd, you can check if it is already enabled with:
sudo systemctl status rc-local
You can enable it with:
sudo systemctl enable rc-local
The file needs to exist and be marked executable. If you encounter problems, such as the service not being able to start, or if you want more details on how that service works, see: