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
чтобы убедиться, что очередь пуста, какой она была.