Understanding service --status-all output

I am trying to understand the output of the service --status-all command on Ubuntu 13.10, since the man page doesn't explain it. For example:

[ + ]  rsyslog
[ - ]  sendmail
[ ? ]  sendsigs
[ + ]  setvtrgb
[ - ]  ssh

What do +, -, ? mean? I can't figure it out. I had sendmail installed before but I stopped and removed it with apt-get remove sendmail*. I guess that didn't get rid of the init script in /etc/init.d/ and that's why it shows it in the output, but at least it's a -, so I assume it's not running. Then, SSH. I'm actually SSH-ing into the server, so I assume the SSH service should be running, but it's a - there anyway. And then there's the cryptic ?. Somebody please shed some light on what this actually means.


The service --status-all command tries to figure out for every init script in /etc/init.d if it supports a status command (by grepping the script for status).

If it doesn't find that string it will print [ ? ] for that service.

Otherwise it will run /etc/init.d/$application status.
If the return code is 0 it prints [ + ].
If it's not 0 it prints [ - ].

Why does ssh print [ - ] even though it's still running?
ssh is controlled by upstart in Ubuntu (13.10).
Running /etc/init.d/ssh status will produce no output and a return code of 1.