* Add ability for service to report the system managing the service
* Clarify that the output of SystemName should return the same value as Platform in most cases
* Rename SystemName to Platform to match the rest of the package
* be a little more clear in the Platform comment
* update command execution to support returing error codes, and stdout
add function to service interface to support returning service status
clean up places where strings were being converted to strings
* Spelling fix
* Simply service Status method
Add stopped detection to launchd
Switch to case statements
Return ErrNotInstalled in situations where we should
SysV init scripts are ran on boot from symlinks in `/etc/rc.d/rc.X`, where
X is the runlevel. These symlinks are usually named something like
`S99foobar`, which is a link to the real script `foobar`. This leads to
differences in the pid_file filename and can lead to multiple processes
running. By using readlink to get the actual destination filename, the
pid_file name should always be consistent.
Resolves: #78
Breaking apart each service reduces the overall number of branches
in the code, but increases duplication. Duplication can be taken
care of in follow-up commits while still keeping the clarity of
linear code.
Also expiriment with code that would allow the user to add or remove
systems. Still expirimental and not exposed in the API.