Это довольно простой сценарий, но я не нахожу слишком много полезных ресурсов. У меня есть программа на С++, работающая в Linux, которая обрабатывает файлы. Читает строки, выполняет различные преобразования, записывает данные в базу данных. Существуют определенные переменные (хранящиеся в базе данных), которые влияют на обработку, которую я сейчас читаю на каждой итерации, потому что я хочу, чтобы обработка была как можно более актуальной, но небольшое отставание в порядке. Но эти переменные меняются довольно редко, и чтение со временем дорого (10 миллионов плюс строки в день). Я мог бы пропустить прочитанные на каждую n-итерацию или просто перезапустить программу, когда переменная изменяется, но это кажется хакерским.
Вместо этого я хочу, чтобы программа запускала перечитывание переменных при получении SIGHUP. Все, что я читаю о обработке сигналов, говорит о библиотеке сигналов С, и я не уверен, как привязываться к моим классам программ. Библиотеки сигналов Boost, похоже, больше связаны с межобъектной связью, а не с сигналами ОС.
Может ли кто-нибудь помочь? Похоже, это должно быть невероятно просто, но я довольно ржавый с С++.