Если в Windows происходит сбой приложения, мы можем проверить программу просмотра событий в инструментах администрирования, чтобы увидеть, что произошло. Иногда у него есть полезная информация, которой нет у других, но это только начало.
В Linux, если приложение (любое) падает, как начать отслеживать, что произошло?
Например, есть ли центральный журнал или что-то подобное?
12
/var/log/syslog
. Linux позволяет демону получать уведомления о сбоях процессов. Убунту Apport и Red Hat, ABRT использовать это , чтобы обеспечить централизованное ведение журнала и генерации отчетов объектов. Обычно дамп ядра сохраняется, чтобы вы могли вызвать отладчик в аварийной программе.Ответы:
Нормальное место для системных логов есть
/var/log/
. То, что помещается в каждый журнал, зависит от конфигурации системного журнала, но обычно все, кроме имен входа, отправляется/var/log/syslog
.Это не является гарантией того, что отдельные приложения оставили какие-либо подсказки в случае возникновения проблемы. Но они или оболочка, скорее всего, будут выплевывать что-то в стандартные потоки ошибок out / standard, и если вы запустите проблемное приложение на переднем плане из терминала, вы сможете увидеть это.
источник
/var/log
? Какой файл журнала? Есть ли соглашение?ls -lart
, последний файл в списке был наиболее недавно изменился./var/log/syslog
, но разные дистрибутивы делают вещи по-разному. Если вы знаете, какой системный журнал вы используете, вы можете проверить его конфигурацию, чтобы определить это.На Ubuntu segfaults пишут в
/var/log/kern.log
. Я проверил это, создав программу, которая segfaults:После того, как это произошло, была эта строка в
/var/log/kern.log
:источник
В Ubuntu, если вы запускаете приложение из файла запуска .desktop, добавьте эту опцию
Terminal=true
в свой файл .desktop.источник