Exit with error if port/socket in use

Failing with a proper exit status is important, otherwise tools such as [supervisor](http://supervisord.org/) can't differentiate between successfully-completed and failed processes.