В данный момент реализовано очень топорно и тупо. Это изначально проверка запущенного процесса по порту через nc, далее парс пидов, если существуют, то завершаем и потом уже запуск по тому же порту идет...
Но приходится много процессов держать открытыми для этого. А завершение процесса делать по завершению потока - невозможно, описано в посте.
[Решено] Выполнение команды после ошибки
-
Вот в вики все написано. http://wiki.bablosoft.com/doku.php?id=ru:how_to_catch_errors