Просто заставьте его работать с небольшими сценариями удара. Распечатайте размер и имя файла, если это - каталог, добавляет запаздывающая наклонная черта.
du -ab | while IFS=$'\t' read -r size line; do printf "%s\t%s" $size "$line"; [[ -d $line ]] && printf "/"; echo; done
Это будет работать с любым именем файла, не содержащим новые строки или заканчивающимся вкладкой.
Есть ли, например, некоторый центральный журнал или что-то подобное?
Нормальное место для системных журналов /var/log/
. Что вставляется, каждый журнал зависит от конфигурации системного журнала, но обычно все кроме логинов переходит в /var/log/syslog
.
Это не гарантия, что отдельные приложения оставят любую подсказку там в случае проблемы. Но они или оболочка, вероятно, плюнут чем-то к стандарту/стандартная погрешность потоки, и если Вы запустите неприятное приложение на переднем плане от терминала, то Вы сможете видеть тот материал.
В Ubuntu ошибки сегментации записываются в /var/log/kern.log
. Я проверил это, создав программу, которая выполняет segfaults:
void main() {
int *a=0;
*a=0;
}
После того, как segfaснилась, в /var/log/kern.log
была эта строка:
a.out[534]: segfault at 0 ip 08048432 sp bfaec8c0 error 6 in a.out[8048000+1000]
В Ubuntu, если вы запускаете приложение из файла запуска .desktop, добавьте параметр Terminal=true
в свой файл .desktop.
Запуск демона exec только в командной строке, вместо того, чтобы быть переданным systemd, тогда вы получите полную информацию о стеке сбоя из стандартного вывода при воспроизведении сбоя. Это сэкономит много времени на слепое добавление журнала трассировки повсюду.
/var/log
? Какой файл журнала? Есть ли некоторая конвенция? – Jim 22.01.2014, 23:53ls -lart
, последний файл в списке был последний раз изменен. – Devon_C_Miller 23.01.2014, 00:36/var/log/syslog
, но различные дистрибутивы делают вещи по-другому. Если Вы знаете то, что, какой системный журнал Вы используете, можно исследовать его конфигурацию для определения этого. – goldilocks 23.01.2014, 00:57