Мне любопытно, как я могу показывать/контролировать файлы, что программа пишет в через командную строку? Я понимаю, что определенные процессы полагаются на определенные файлы для функционирования, но как делают я знаю, какие файлы эти процессы используют. Позволяет говорят, что я хочу видеть, в какие файлы сервис сопоставителя DNS пишет, я знаю, что ответ является/etc/resolv.conf, но как я могу проверить это?
Эти lsof
списки команд открывают файлы для каждого процесса. Количество открытых файлов в любой момент будет огромно, таким образом, Вы захотите быть немного конкретными.
, Если Вы знаете идентификатор процесса, сделайте sudo lsof -p <pid>
.
, Если Вы знаете каталог, в котором расположены файлы, сделайте sudo lsof
+D <directory>
.
существует намного больше опций. См. man lsof
. Без sudo можно только видеть файлы, открытые процессами, которыми Вы владеете сами.
Можно использовать strace
для контроля каждого системного вызова, который процесс делает, включая вводные файлы и для чтения и для записи.
strace
процессы большой вывод. Вы можете grep вывод для open
для рассмотрения просто вызовов к open files
.
См. man strace
для деталей. Обратите внимание, что это -f
опция, если необходимо проследить процесс, это разветвляется.