#c #linux #daemon
#c #linux #демон
Вопрос:
Я пишу приложение-демон для Sid Debian. В большинстве случаев он работает отлично, но молча умирает после того, как я перевожу свой ноутбук в режим ожидания (или гибернации). Итак, у меня есть пара вопросов:
- Какие решения я должен искать в Google?
- Может быть, у вас есть какие-либо идеи, что происходит?
Комментарии:
1.
setsid
иnohup
являются вашими ключевыми словами Google.
Ответ №1:
Попытка strace
демона посмотреть, в чем причина его молчаливой смерти. Как правило, приостановка / гибернация сами по себе не должны влиять на пользовательские процессы.
Ответ №2:
Цикл демона блокировал вызов чтения, и приостановка (переход в спящий режим) прерывает его. Итак, следует более точно проверять ошибки.
Исправлено путем добавления:
if ( errno == EINTR ) continue;