nohup вызывает проблемы с почтой

У меня странная проблема с nohup и почтовый процесс в OSX. Я писал программу с использованием Xcode, которая заархивировала папку и отправила ее на адрес электронной почты с помощью следующей команды:

zip -r -X "zipfile.zip" /Path/To/Folder ; uuencode zipfile.zip newzipfilename.zip | mail -s "Subject Of Email" emailaddress@gmail.com`

Это работало прекрасно, пока я не использовал nohup, чтобы скрыть процесс:

nohup ./PROGRAM_NAME &

С тех пор, как я использовал nohup, у меня возникла проблема, когда я получаю десятки электронных писем, когда предполагается отправлять только одно электронное письмо. Это показано на рисунке ниже

Я на 99% уверен, что проблема не в моем коде, потому что когда я запускаю ту же команду через терминал, я все равно получаю почти 100 писем. Этого не случилось, пока я не использовал nohup.

Я имею:

  • Используемый killall а также kill -9 а также kill чтобы убить все процессы, которые я мог придумать (nohup, mail, smtp так далее)
  • Был на мониторе активности и ничего не кажется необычным
  • Просмотренные процессы, запущенные с использованием ps -ef | grep "Process"
  • Удалил nohup.out файл

Ничто не похоже на работу

Письма отправляются в течение примерно 20 минут, а затем останавливаются до тех пор, пока я снова не выполню команду для отправки почты. Как будто они стоят в очереди, хотя я сомневаюсь, что это проблема.

Если кто-то может предоставить предложения, которые были бы полезны

1 ответ

О человек, я думаю, я понял это.

Комментарий, который я сделал о существовании очереди, был действительно правильным.

Я думаю, когда я использовал nohup команда программа оставалась запущенной в фоновом режиме в течение нескольких минут, прежде чем я ее убил. Я также думаю, что моя программа где-то имела бесконечный цикл. Это сгенерировало большое количество писем, которые попадали в почтовую очередь перед тем, как я вышел из программы.

Я использовал команду sudo mailq чтобы увидеть, было ли какое-либо письмо в очереди и, конечно, было 719 запросов (электронных писем).

Я тогда просто использовал sudo postsuper -d ALL удалить всю почту из очереди и затем запустить sudo postqueue -p чтобы убедиться, что очередь пуста, какой она была.

Другие вопросы по тегам