У меня есть процесс, использующий сокеты, соединения с базой данных и тому подобное. По сути, это серверный процесс, передающий данные датчиков и веб-интерфейс, и поэтому важно, чтобы приложение, если оно было убито, корректно завершало работу.
Как мне обрабатывать непредвиденные исключения, такие как ошибки сегмента (по крайней мере, для отладки), а также сигналы уничтожения, чтобы я мог закрыть любые соединения и остановить все запущенные потоки, чтобы процесс не оставлял в беспорядке все, что он использует?