Opened 4 years ago
#4762 enhancement new
give me a good error message and exit without daemonizing when an IService can't start up
|Reported by:||glyph||Owned by:|
The canonical use-case is a port which cannot be bound.
Right now, there is some accidental behavior where, sometimes, you'll get a traceback on stderr before twistd starts up, but other times it will just daemonize and then exit (or just log a traceback and not exit). In no case does the user get a simple, helpful error message telling them what they need to change in order to get things to start up properly.
IService / MultiService / twistd should collaborate to provide a defined behavior for services who can't start up, and allow them to report errors and gracefully exit, possibly tearing down other services which were started first.
- #4731 had to deal with this issue a bit. The "new, good" API will just log a traceback, and not actually exit. It's not clear that this is an improvement, but it is at least more consistent.
- A really good solution here may involve fixing #718 as a prerequisite, as twistd should really have a non-zero exit status when it can't actually start up.