Python: Почему мой SMTP-скрипт зависает на моем компьютере?

1

Итак, я написал небольшую многопоточную SMTP-программу. Проблема заключается в том, что каждый раз, когда я запускаю ее, она замораживает компьютер вскоре после этого. Похоже, что script работает, так как моя сетевая карта все еще загорается и письма получены, но в некоторых случаях она полностью блокируется и перестает отправлять письма.

Здесь ссылка на мои два файла script. Первый - это запуск программы:

readFile.py newEmail.py

  • 0
    Не используйте pastebin для ссылки на код!
  • 0
    @RestRisiko Почему бы и нет?
Показать ещё 3 комментария
Теги:
multithreading
smtp
freeze

1 ответ

3
Лучший ответ

Сначала вы используете popen, который создает подпроцессы, т.е. обрабатывает не потоки. Я предполагаю, что это то, что вы имели в виду.

Я предполагаю, что программа застряла в цикле, где она непрерывно генерирует процессы, которые OS, вероятно, не понравится. (Это называется forkbomb, что является хорошим способом заморозить Linux, если только предел процесса не установлен с помощью ulimit.) Я не мог найти ошибку, хотя, но если бы я был вами, я бы записывал сообщения каждый раз, когда я запускаю или убиваю подпроцесс, и если все в порядке, внимательно следите за системой (ps или top on Unix), чтобы убедиться, что процессы действительно убиты.

  • 0
    Хм, может я сделаю это. Я думаю, что мне придется пойти с первым (запись в файл журнала), так как система заблокирована, и я не смогу запустить ps.
  • 1
    Моя идея состояла в том, чтобы запустить его до того, как он замерзнет. На самом деле было бы намного чище использовать ulimit для ограничения числа процессов ( ulimit -u ) для предотвращения сбоя.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню