В данный момент реализовано очень топорно и тупо. Это изначально проверка запущенного процесса по порту через nc, далее парс пидов, если существуют, то завершаем и потом уже запуск по тому же порту идет...
Но приходится много процессов держать открытыми для этого. А завершение процесса делать по завершению потока - невозможно, описано в посте.