Всем привет!
Написал приложение и systemd файл. Запускаю, все ок, работает. Приложение слушает unix socket, в него проксирует nginx. Все отлично, но есть небольшая проблема, которая пугает: если прибить процесс
sudo kill -9 {pid}
не сработает горутина, которая слушает канал на os.Signal, следовательно сокет не закроется. Так вот, если что-то кто-то прибьет процесс, заново он уже не запустится:
listen unix /tmp/app.sock: bind: address already in use
Меня это немного пугает, не хотелось бы обнаружить, что мой сервер сыпет 502 ошибками в самый неожиданный момент.
Вот, собственно, вопрос: как правильно поступить при таком случае? Пробовал os.Remove("/tmp/app.sock") но пишет что такого файла нет. Как правильно обработать данную ситуацию, да и вообще в целом запустить процесс если он был убит через kill -9?