I wrote this as a way to start learning Go. It's ugly, immature, and might not work at all for you. But if you have need of a quick and easy way to restart xbmc on your HTPC without logging in directly, it might come in handy.
Feel free to check it out here: https://github.com/josebiro/XBMCAdmin
I realize there are likely better ways to handle deadlock situations. People (including myself) should spend more time filing bugs and debugging/submitting patches, rather than rebooting to fix issues... but this also helps to successfully recreate failure modes several times in a row fairly efficiently by allowing black box (ie, not in the xbmc process) control of xbmc.bin.
Feel free to check it out here: https://github.com/josebiro/XBMCAdmin
I realize there are likely better ways to handle deadlock situations. People (including myself) should spend more time filing bugs and debugging/submitting patches, rather than rebooting to fix issues... but this also helps to successfully recreate failure modes several times in a row fairly efficiently by allowing black box (ie, not in the xbmc process) control of xbmc.bin.