Как сказал Роберт в своем комментарии, убедитесь, что вывод, который вы ожидаете получить в файл, фактически делает его там, а не stderr.Если процесс уже запущен и долгое время без ответа или записи в выходной файл, я думаю, что есть 3 варианта:
- Он генерирует аут, но он не идет туда, где вы находитесьожидающий (ответ Робертса)
- Он генерирует выходные данные, но он буферизован и по какой-то причине еще не очищен
- Это не не генерирует никаких выходных данных
Вариант 3 прост: подождите дольше.Варианты 1 и 2 немного хитры.Если вы ожидаете значительного объема вывода из этого процесса, вы можете проверить потребление памяти экземпляром python, выполняющим ваш скрипт, и посмотреть, будет ли он расти или очень велик.Также вы можете использовать lsof
, чтобы увидеть, открыт ли файл, и понять, что он с ним делает.
Если вы обнаружите, что ваш вывод выглядит как / dev / null, возьмитевзгляните на этот ответ о перенаправлении вывода для существующего процесса.
В маловероятном случае, если у вас есть огромный буфер, который не был очищен, вы можете попробовать использовать ps
, чтобы получить PID, а затем использовать kill -STOP [PID]
, чтобы приостановить процесс и посмотреть, где вы можете получитьиспользуя GDB.
Если это не будет чрезвычайно болезненно, я бы, вероятно, просто перезапустил бы все это, но добавил бы периодическую очистку в сценарий, и, возможно, некоторую дополнительную отчетность о состоянии, чтобы вы могли сказать, что происходит.Это также может помочь, если вы можете опубликовать свой код, поскольку в вашей ситуации могут быть и другие варианты, в зависимости от того, как написана программа.