Вы не указали свою операционную систему, но я возьму удар и скажу "Linux".
Просмотр того, что пишется в stderr и stdout, вероятно, не поможет. Если это полезно, вы можете использовать tee (1) перед запуском скрипта, чтобы взять копии stderr и stdout.
Вы можете использовать ps (1) для поиска wchan. Это говорит вам, чего ожидает процесс. Если вы посмотрите на вывод strace, вы можете проигнорировать большую часть вывода и определить последний (заблокированный) системный вызов. Если это операция над дескриптором файла, вы можете вернуться назад в выходной файл и определить базовый объект (файл, сокет, канал и т. Д.). Оттуда ответ, вероятно, будет ясным.
Вы также можете отправить процессу сигнал, который заставит его сбросить ядро, а затем использовать отладчик и файл ядра, чтобы получить трассировку стека.