TGViewer
DevOps Ready | IT DevOps Ready | IT @devops_ready · 7.64K subscribers
Post #879 1.5K
Диагностируем процессы в Linux через strace!

Когда сервис завис, тупит на старте, не открывает файлы или просто ведёт себя странно, а в логах ничего — почти всегда первым делом имеет смысл запустить strace. Он показывает системные вызовы процесса, то есть что программа на самом деле просит у ядра.

Запускаем программу под трассировкой:
strace ls /tmp


Сразу видно, какие файлы открываются, какие библиотеки грузятся, где возникают ошибки.

Можно прицепиться к уже работающему процессу — удобно, если сервис завис:
sudo strace -p <PID>


Обычно быстро становится понятно, где он застрял: futex (блокировка), ожидание I/O (poll/epoll_wait), connect, чтение/запись и т.п.

Если программа создаёт дочерние процессы, без этого ключа часть событий не попадёт в вывод:
strace -f <command>


Проблемы с файлами, конфигами и правами:
strace -e trace=%file <command>


Покажет open/stat/access и другие файловые операции — удобно понять, какие пути реально проверяются.

Частый кейс — программа ищет файл, которого нет:
strace -e trace=%file <command> 2>&1 | grep ENOENT


Сразу видно, какой путь оказался отсутствующим.

Для сетевых проблем:
strace -e trace=%network <command>


Видно создание сокетов, попытки подключения и ошибки.

Если нужно сохранить вывод:
strace -o trace.log <command>


С дочерними процессами лучше так:
strace -ff -o trace.log <command>


Будут отдельные файлы по PID.

Иногда вывод обрезает длинные строки — увеличиваем лимит:
strace -s 200 <command>


Посмотреть, где именно тратится время:
strace -T <command>


Короткая сводка по системным вызовам:
strace -c <command>


🔥 strace незаменим при анализе поведения непрозрачных бинарников и в случаях, когда нет доступа к исходному коду. Он показывает, на каких системных вызовах процесс блокируется и какие операции фактически выполняет в пространстве ядра.

➡️ DevOps Ready | #практика
  • 🔥 12
  • ❤ 8
  • 👍 8
More from @devops_ready
  1. Oct 5, 2026Изоляция процессов в Linux через Unshare без Docker и тяжелых утилит. Мы научимся использо…
  2. Oct 5, 2026Как оплачивать зарубежные сервисы в 2026 году? Можно бегать между посредниками и бояться б…
  3. Oct 5, 2026DigitalOcean Community собирает подробные руководства по Linux! В разделе Linux Basics ест…
  4. Oct 2, 2026Знали, почему настройки systemd-сервиса лучше менять через systemctl edit? Допустим, прило…
  5. Oct 2, 2026⚡️5 фундаментальных курсов по ИБ по цене одного Это предложение для тех, кто готов войти в…
  6. Oct 2, 2026Этот инструмент поможет поять из чего на самом деле состоит Docker-образ! Он содержит терм…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →