Я пытаюсь отладить приложение в Ubuntu - мне нужно прослушивать попытки открытия файлов (даже для файлов, которые не существуют).
Process Monitor (ранее известный как FileMon ) доступен в Windows - что находится в служебном поясе Ubuntu?
Благодарность!
Ashley
Это зависит от того, что вы хотите:
В целом, вы хотите посмотреть inotify, чтобы увидеть все обращения к файлам, которые делает любой процесс.
В маленьком, strace позволит вам наблюдать системные вызовы, которые делает определенный процесс. Стрейс довольно круто.
strace -f -eopen $cmd
Например, вы можете отследить вызовы процесса для «открытия» . Страница людей имеет полную информацию о синтаксисе, конечно.источник
strace
Перед запуском приложения хорошо смотреть, что делает приложение.lsof
приятно видеть, какие файлы использует уже запущенное приложение.Кстати:
lsof -ni:22
показывает, какой процесс использует порт 22.источник
У SGI есть инструмент, который вы можете попробовать: http://oss.sgi.com/projects/fam/
источник
Вот пример использования strace для отслеживания изменений файла:
strace -f -e trace=file -p7546 -o /tmp/outputfile
-f
обеспечивает захват событий дочерних процессов.-e trace=file
говорит, что мы должны перехватывать системные вызовы, связанные с файлами (напримерstat
,open
иfutex
т. д.)-p
- это идентификатор процесса (полученный изps -aux
или другими средствами),-o
указанный в выходном файле (может быть много данных, и вместо этого вы можете использовать grep в качестве фильтра)источник
Попробуй sysdig . Например:
источник
Это требует помощи от Мортадело. http://gitorious.org/mortadelo
источник
Это старый, но я думаю, что это хорошая идея, чтобы обновить его на сегодня реальность.
Для отладки всего одного процесса и их потомков, strace все равно будет лучшим способом. Он может легко показать любой доступ к файлу, даже на отсутствующих файлах.
Для общей отладки системы, функция аудита в ядре может сделать это и является рекомендуемым способом. Он не требует каких-либо исправлений для последних ядер, только установленный пакет аудита
Вот простой графический интерфейс для его использования:
аудит-гуй
Это копирует Windows Filemon, отслеживая доступ к файлам для всех мест, процессов и т. Д.
также проверьте этот пост
источник
Вот что хорошо сработало для меня (Linux Mint 19.1):
sudo lsof 2>&1 | grep programnamehere
Не уверен, зачем
2>&1
это нужно, но он не отфильтровывался, если я не использовал его.источник