← До списку лабораторних по Linux
Повний опис / сценарій лабораторної:
Мета: навчитися застосовувати strace щоб побачити системні виклики програми і зрозуміти де вона блокується або падає. Крок 1. Запустити просту команду під strace. Команда: strace -o ~/strace_ls.log ls /tmp >/dev/null Пояснення: системні виклики ls будуть записані у файл. Крок 2. Переглянути перші рядки логу. Команда: head -n 20 ~/strace_ls.log Пояснення: побачите виклики типу openat, read, write. Крок 3. Запустити strace у режимі короткого резюме. Команда: strace -c ls /tmp >/dev/null Пояснення: отримаєте статистику за типами викликів. Крок 4. Знайти процес що завис та відстежити його. Пояснення: у тестовій системі можете запустити sleep 1000 і прикріпитися до нього. Крок 5. Прикріпитися до процесу через strace -p. Команда: strace -p PID Пояснення: перевірте які виклики він робить або на чому чекає. Крок 6. Додати опцію -f для відстеження дочірніх процесів. Пояснення: це корисно для сервісів що форкують багато дочірніх. Крок 7. Відфільтрувати тільки файлові виклики. Команда: strace -e trace=file ls /etc >/dev/null Пояснення: у лог потраплять тільки операції з файлами. Крок 8. Відпрацювати сценарій коли програма не може знайти бібліотеку або конфіг. Пояснення: запустіть strace для такої програми і подивіться які шляхи вона перевіряє. Крок 9. Акуратно зупинити strace і процес над яким ви працювали. Пояснення: переконайтеся що не залишилось зайвих процесів. Крок 10. Міні звіт. Завдання: опишіть кейс з реальної практики де strace допоміг би знайти проблему відмови у доступі або відсутнього файла.