Добавить в корзинуПозвонить
Найти в Дзене
Машинное обучение

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 - один из тех инструментов, которые превращают «оно зависло» в нормальный технический диагноз.

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 - один из тех инструментов, которые превращают «оно зависло» в нормальный технический диагноз.