ddollar/foreman — pull request #397 by phemmer (2013-10-03 00:26:34+00:00)
Title: specify a shell when using upstart

When an upstart service is exported, the command used does not specify a shell. It instead relies upon the user to have a shell. However it is basic security practices for system accounts to not have a shell (shell set to `/bin/false`, or `/usr/sbin/nologin`, etc). This causes the upstart job to fail as the user has no shell.

This change forces the shell to `/bin/sh`.
POSIX does not mandate that a shell exist at `/bin/sh`, however this is standard practice as the location is relied upon by may other projects. POSIX does require that a shell called `sh` be available, just not at a certain path. Instead it says the location should be discovered through `$PATH`. It would be possible to therefore find `sh` by `command -v sh`, but given the standard practice of `/bin/sh`, I deemed this added complexity as unnecessary.