Sysvinit had /etc/inittab as a config file and it was fine most of the time. You pick a run-level and kicks off any matching items, like terminals and scripts. It used to be that you'd point it to a single script (rc.local) for your customization. In many respects that was easier than how we handle model systems. The script would run from top to bottom. Each step was one to five lines of really basic shell script. After 5 minutes your server was up and running and you wouldn't need to reboot for another year.
When packages wanted to bundle their own start/stop logic is where the simple times ended. Long gone are the days that running a program starts a daemon, and sending it signals kills it. Now every service has a 50-100 line shell script to wrap it. And even with systemd you end up having to go in there and monkey with that script sometimes.