I used to have a /etc/rc.d/rc.local file that ran reliably before I upgraded to F42. Now it doesn’t get run on startup. A manual “systemctl enable rc-local” works fine but when I run “systemctl enable rc-local”, I get
The unit files have no installation config (WantedBy=, RequiredBy=, UpheldBy=,
Also=, or Alias= settings in the [Install] section, and DefaultInstance= for
template units). This means they are not meant to be enabled or disabled using systemctl.
Possible reasons for having these kinds of units are:
• A unit may be statically enabled by being symlinked from another unit’s
.wants/, .requires/, or .upholds/ directory.
• A unit’s purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, …).
• In case of template units, the unit is meant to be enabled with some
instance name specified.
I have no idea what this means - does it mean the rv-local unit file is bad? Does my /etc/rc.d/rc.local file need to be a unit file now?
I guess I could just write a unit file but isn’t the rc-local service upposed to work?
SOLUTION:
This was more buggery from selinux. Even though my /etc/rc.d/rc.local was mode 755, the following log entry was being produced: “systemd-rc-local-generator: /etc/rc.d/rc.local is not marked executable, skipping.” Setting selinux to permissive fixed this.