3

У меня странная проблема с 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, у меня возникла проблема, когда я получаю десятки электронных писем, когда предполагается отправлять только одно электронное письмо. Это показано на рисунке ниже

img1

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

Я имею:

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

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

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

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

1 ответ1

2

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .