The system boot technology on GNU/Linux is shifting. Many distros are no longer relying on the Unix System V approach, with the oddly named /etc/init.d directory and the rcX-type 'run control' directories for different run levels.
The move is instead towards systemd and upstart. I'm only talking about systemd here, and the best way to install a service that depends upon docker.
Systemd requires unit files installed, in the proper way, in its /etc/systemd/system directories. Here's an example of a unit file, which starts up the mediawiki containers service mentioned in the previous post:
[Unit] Description=mediawiki-containers After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 WorkingDirectory=/srv/mediawiki-containers ExecStart=/srv/mediawiki-containers/mediawiki-containers start ExecStop=/srv/mediawiki-containers/mediawiki-containers stop [Install] WantedBy=multi-user.target
This file is named mediawiki-containers.service, but it shouldn't be confused with any script service files, including the one referred to (mediawiki-containers). This unit file is called a service file because it refers to other kinds of services.
Clearly it must be started after docker is up.
Now, there's a directive in here to install it to the 'multi-user target'. This is a kind of run-level definition. But it adds to the trickiness of actually installing this.
I'm installing it on Ubuntu Linux 15.10, which has systemd pre-installed.
This unit file was authored by the mediawiki folks, and they put it on your system here: /srv/mediawiki-containers/init/mediawiki-containers.service ...
So all that's needed is to tell systemd about it, using systemctl enable:
# systemctl enable /srv/mediawiki-containers/init/mediawiki-containers.service Created symlink from /etc/systemd/system/multi-user.target.wants/mediawiki-containers.service to /srv/mediawiki-containers/init/mediawiki-containers.service. Created symlink from /etc/systemd/system/mediawiki-containers.service to /srv/mediawiki-containers/init/mediawiki-containers.service. #
It should then startup on the next reboot.