У меня есть процесс демона python2.7, использующий модуль из http://www.jejik.com/files/examples/daemon.py
Это тяжелый процесс с использованием около 40 ГБ ОЗУ и 9 дочерними потоками. Сервер использует RHEL 6.3 с 192 ГБ ОЗУ и достаточной мощностью процессора.
После запуска процесс длится где-то 3-7 часов, но потом его кто-то убил, может ядро. Но я не смог найти никаких подсказок ни в dmesg, ни в журнале ядра (который я активировал вручную), там ничего нет. Когда я не запускался как демон, я просто получил сообщение в терминале: «убит».
Были предприняты следующие меры предосторожности:
- сброс оценки oom в /proc//oom_score_adj, чтобы oom killer не выбирал процесс при сортировке ресурсов
- увеличение всех rlimits (которые могут быть увеличены) до максимума
- установите процесс хороший/приоритет выше (приоритет -15)
Эта проблема существует уже до применения этих мер предосторожности, поэтому они не несут ответственности за убийство
У меня также есть механизм для перехвата всех исключений, STDERR, STDOUT и регистрации всего в ротационном файле журнала. Но не было ничего интересного непосредственно перед смертью процесса.
Модули, используемые в процессе, среди прочего: oracle_cx, ibm_db, suds, wsgi_utils. Но все они всегда пишут логи при возникновении ошибок.
Кто-нибудь знает, как отследить убийство? Кто и почему?
заранее спасибо