Linux tip: когда процесс завис, не убивайте его вслепую Если процесс… — DevOps — TG.ME

Linux tip: когда процесс завис, не убивайте его вслепую

Если процесс завис, не обязательно сразу делать kill -9 и гадать, что там произошло.

Можно подключиться к нему через strace и посмотреть в реальном времени, на каком системном вызове он застрял.

Команда:


strace -p <PID> -e trace=read,write,open


Что это даёт:

видно, читает ли процесс данные
видно, пишет ли он куда-то
видно, какие файлы открывает
можно понять, ждёт ли он stdin, файл, сокет или pipe
не нужно менять код
не нужно перезапускать сервис

Например, если программа «висит», strace может показать, что она просто ждёт read() из file descriptor. То есть проблема не в CPU, не в deadlock и не в магии Linux, а в том, что процесс ждёт ввод.

Это особенно полезно в проде, когда нельзя просто взять и перезапустить сервис ради эксперимента.

Базовый сценарий:


pidof my_process
sudo strace -p <PID> -e trace=read,write


И дальше вы видите, чем процесс реально занят.

strace - один из тех инструментов, которые превращают «оно зависло» в нормальный технический диагноз.
👍17🔥9❤6
June 17, 2026 3.5K 113