ddollar/foreman — pull request #396 by phemmer (2013-09-26 20:40:21+00:00)
Title: export: fix systemd dependencies

With the previous way systemd services were exported, you had to enable every single process one by one to get the service operational.

Consider the following Procfile:

web: bundle exec thin start
worker: bundle exec worker start

Exported with:

foreman export systemd /usr/lib/systemd/system -a myapp -c worker=3

You will have to perform the following to start the service:

systemctl enable myapp-web-1.service
systemctl enable myapp-worker-1.service
systemctl enable myapp-worker-2.service
systemctl enable myapp-worker-3.service
systemctl enable myapp-web.target
systemctl enable myapp-worker.target
systemctl start myapp.target

Thats 7 commands, and you have to know the names of each service. Nasty.

With the changes here, you will have to perform the following:

systemctl enable myapp.target
systemctl start myapp.target

You can also `systemctl start myapp.target` without enabling as well. Previously if you tried to `systemctl start myapp.target` without enabling each individual process it would not work.

---

Additionally, this change also adds the dependency to 'multi-user.target' (the default behavior for all services). This will properly shut down (or start) the app when the system changes runlevels. The previous method did not do this.