I wasn't not sure how to handle the case where another application is using the port, so I punted on that question.
You're probably right about using the checkalive, I'll redo this pull request to do that when I have time (likely Monday).