Я установил демон в системе kubuntu, который пытается найти определенный файл конфигурации в неизвестном месте. Буквально заполнил файловую систему символическими ссылками на файл конфигурации, но все равно он жалуется на "файл не найден".

Есть ли какая-нибудь команда, которую я могу написать, которая будет регистрировать все попытки доступа к несуществующим файлам на жестком диске, чтобы я мог найти, где он пытается найти свой файл?

1 ответ1

0

Вы можете использовать strace для процесса, если знаете его PID:

strace -f -p 123 | tee testoutput.txt

(при условии pid 123). «-F» означает "следовать за вилками" (упрощенно сказано), «-p» говорит "PID следует". Смотрите man strace для более подробной информации. Одним словом, strace отслеживает все действия, предпринимаемые процессом, например, при открытии файлов, чтении или записи в них. Лучше всего перенаправить вывод в файл для анализа - в моем примере это достигается путем передачи его в tee, который разбивает вывод, который будет отображаться на консоли, а также записываться в указанный файл.

В выходных ищите что-то вроде

read(51, 0x7f287a7b36f0, 4096)          = -1 EAGAIN (Resource temporarily unavailable)

(Да, это неправильная ошибка - но единственное, что я смог найти на данный момент) - так что за read следует что-то в скобках, затем некоторые пробелы, за которыми следуют "=" и отрицательное число (= ошибка). Я думаю, вы должны найти что-то вроде "ENOTFOUND", чтобы указать отсутствующий файл (не знаю точный код ошибки).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .