I dont think your suggestion is correct solution. Independent of cloud-init, things in rc.local should be run as "the last thing in boot". rc.local came from a simpler time. sysvinit ran rc.local as the last thing, and that was that last thing that would run.
Many people will do:
a.) install Ubuntu
b.) add some script to /usr/local/bin
c.) add /usr/local/bin/myscript to /etc/rc.local
and expect that their script will run "at the end of boot"
It may be simplistic, but it is extremely useful and many users expect that functionality.
Breaking this expectation and functionality is not helpful. upstart successfully maintained a useful resemblance to the original rc.local functionality. I personally would expect systemd to also.
Martin,
I dont think your suggestion is correct solution. Independent of cloud-init, things in rc.local should be run as "the last thing in boot". rc.local came from a simpler time. sysvinit ran rc.local as the last thing, and that was that last thing that would run.
Many people will do: bin/myscript to /etc/rc.local
a.) install Ubuntu
b.) add some script to /usr/local/bin
c.) add /usr/local/
and expect that their script will run "at the end of boot"
It may be simplistic, but it is extremely useful and many users expect that functionality.
Breaking this expectation and functionality is not helpful. upstart successfully maintained a useful resemblance to the original rc.local functionality. I personally would expect systemd to also.