Демон запускается и работает под Debian до случайного сбоя. Я обнаружил, что иногда он прерывается из-за утверждения, которое отображается, если процесс выполняется на переднем плане, например:
/usr/include/boost/smart_ptr/shared_ptr.hpp:424: T * boost :: shared_ptr :: operator -> () const [с T = libcage :: dht :: query]: утверждение `px! = 0 'не выполнено . Прервано
Код выхода - 134, но как сохранить более подробное описание ошибки (может быть много разных) в файл журнала для последующего анализа, если процесс выполняется в фоновом режиме?
«2> / log / mylogfile» ничего не записывает, а «> / log / mylogfile» записывает выходные данные процесса, игнорируя сообщение об отмене. Также в "dmesg" или "kern.log" ничего нет.
Ты можешь использовать strace
чтобы увидеть, что не так. Он будет регистрировать используемые системные вызовы, сигналы и возвращаемые значения.
Просто strace -v -s 256 -D -o /tmp/daemonlog daemonapp
и вы можете увидеть детали выполнения.
-v: среда печати
-s размер строки: 256 байт
-D запустить strace как отдельный ребенок
-o файл журнала
Если ваш демон использует 'bash script', добавьте "set -x" в начало скрипта и снова запустите процесс и увидите