все лапти выкладывать не стану но помоему причина тут
17877 open("/var/spool/exim/input//1STHp2-0004eL-Kl-D", O_RDWR|O_CREAT|O_EXCL, 0640 <unfinished ...> 17877 <... open resumed> ) = -1 EACCES (Permission denied) 17877 open("/var/log/exim/main.log", O_WRONLY|O_APPEND <unfinished ...> 17877 <... open resumed> ) = -1 EACCES (Permission denied) 17877 geteuid( <unfinished ...> 17877 <... geteuid resumed> ) = 549 17877 fstat(2, <unfinished ...> 17877 <... fstat resumed> {st_mode=S_IFREG|0644, st_size=6320689, ...}) = 0 17877 write(2, "2012-05-12 23:17:44 1STHp2-0004e"..., 126 <unfinished ...> 17877 <... write resumed> ) = 126 17877 write(2, "2012-05-12 23:17:44 1STHp2-0004e"..., 126 <unfinished ...> 17877 <... write resumed> ) = 126 17877 open("/var/log/exim/panic.log", O_WRONLY|O_APPEND <unfinished ...> 17877 <... open resumed> ) = -1 EACCES (Permission denied)
дело в том что апачь у меня mpm-itk и что то я не пойму к какому процессу прицепиться что бы выловить:
[root@isp ~]# ps -eawf | grep httpd root 3531 1 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3533 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3535 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3537 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3539 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3541 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3542 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3543 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3544 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3573 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3606 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3607 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3645 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3646 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3647 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 3648 3531 0 22:41 ? 00:00:00 /usr/sbin/httpd.itk root 4101 3531 0 22:42 ? 00:00:00 /usr/sbin/httpd.itk root 4512 3531 0 22:42 ? 00:00:00 /usr/sbin/httpd.itk root 8063 3531 0 22:44 ? 00:00:00 /usr/sbin/httpd.itk root 8138 3531 0 22:44 ? 00:00:00 /usr/sbin/httpd.itk root 8139 3531 0 22:44 ? 00:00:00 /usr/sbin/httpd.itk root 15659 3531 0 22:48 ? 00:00:00 /usr/sbin/httpd.itk root 17021 3531 0 22:49 ? 00:00:00 /usr/sbin/httpd.itk apache 19615 8063 0 22:50 ? 00:00:00 /usr/sbin/httpd.itk apache 19616 3537 0 22:50 ? 00:00:00 /usr/sbin/httpd.itk apache 19617 3648 1 22:50 ? 00:00:00 /usr/sbin/httpd.itk apache 19618 4512 0 22:50 ? 00:00:00 /usr/sbin/httpd.itk apache 19619 3542 0 22:50 ? 00:00:00 /usr/sbin/httpd.itk apache 19620 3645 0 22:50 ? 00:00:00 /usr/sbin/httpd.itk smsba152 19689 3539 0 22:50 ? 00:00:00 /usr/sbin/httpd.itk u1918129 19829 15659 0 22:51 ? 00:00:00 /usr/sbin/httpd.itk bokos401 19863 3606 29 22:51 ? 00:00:00 /usr/sbin/httpd.itk bokos401 19872 8138 0 22:51 ? 00:00:00 /usr/sbin/httpd.itk root 19875 7800 0 22:51 pts/2 00:00:00 grep httpd [root@isp ~]#
цеплялся к 3531 с параметром -f но он ни чего не показал
strace -p 3531 -f -o apache_trace.txt
вот вывод
3531 select(0, NULL, NULL, NULL, {0, 939000}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) 3531 wait4(-1, 0x7fff6faeee9c, WNOHANG|WSTOPPED, NULL) = 0 3531 select(0, NULL, NULL, NULL, {1, 0} <unfinished ...>
чёт не соображу как поймать нужный процесс(((
ну так дёргает mail() то что указано в домене как sendmail_path а там и указан линк на екзим, поэтому его и дёргает---------- Post added 12-05-2012 at 22:01 ----------Подскажите пожалуйста как сделать strace на отправку письма средствами php что бы отследить всё с самого начала, а то толку смотреть на то что происходит с уже зависшим процессом не много.... надо бы поймать на каком моменте он начинает select ить)---------- Post added 12-05-2012 at 22:35 ----------Удалось выяснить следующее, дёргаем тестовый файл в котором прописана функция mail() с заполненым адресом темой и сообщением
strace /usr/bin/php /var/www/ххххххх/data/www/isp.хххххххххх.net/test.php
сообщение проходит висячий процесс не появляется, дёргаем тот же файл через wget сразу же имеем висячий процесс, сообщение не проходит, пока не кильнёш екзимовские процессы и не перезапустиш екзим (после перезапуска сообщение проходит)
да))) закопался не обратил внимание на
[root@isp logs]# ls -liH /usr/sbin/sendmail /usr/sbin/exim
6031801 -rwsr-xr-x 1 root root 951520 Апр 28 2011 /usr/sbin/exim
6031801 -rwsr-xr-x 1 root root 951520 Апр 28 2011 /usr/sbin/sendmail
[root@isp logs]#
ну да про нехватку фд ни где в логах нет информации.....---------- Post added 12-05-2012 at 18:18 ----------а что за суфикс такой в очереди:
1STD3X-0001Vb-AB-J
что то я в манах про него ничего не нашёл---------- Post added 12-05-2012 at 18:46 ----------Вобщем то поступил пока что так, по зависшим процессам нахожу письмо на котором висим , по заголовку письма нахожу домен с которого отработал скрипт, и в конфиге апача для домена занулил sendmail_path пока тишина ....
ну хочется добится что бы екзим как то сам решал тикие проблемы....
michaek простите я как я понял это легитимный процесс вызванный функцией mail() , а подвиснуть вполне может и из-за ограничения на файловые дискрипторы (так как логов много открывает) так?
ls -liH /usr/sbin/sendmail /usr/sbin/exim
[root@isp logs]# ls -liH /usr/sbin/sendmail /usr/sbin/exim 6031801 -rwsr-xr-x 1 root root 951520 Апр 28 2011 /usr/sbin/exim 6031801 -rwsr-xr-x 1 root root 951520 Апр 28 2011 /usr/sbin/sendmail [root@isp logs]#
я давал вывод выше в теме
/ru/forum/comment/10388579
---------- Post added 12-05-2012 at 17:45 ----------
я почему то думал что функция mail() делает это через sendmail, следовательно и процесс запускать должен он ... не исключаю что ошибаюсь, но то что этот апачевский процесс причислил себя к екзиму и от имени екзима пытается занять другой порт это уже явно не правильно.
осталось выяснить с каких таких соображений апачевский процесс запускает екзим...---------- Post added 12-05-2012 at 17:28 ----------
нет , его я изучил в первую очередь, помоему шелл надо искать ....
может не так выразился, но этот подвисший процесс судя по выводу lsof слушает порты 8080 и 443 и если в этот момент пока этот процесс висит перезагрузить апачь то процес екзима подвисший занимает порт 8080 и апачь уже не стартует, надо убивать процессы екзима и только потом апачь стартует
exim 8913 root 3u IPv4 4141284 TCP *:webcache (LISTEN) exim 8913 root 4u IPv4 4141843 TCP *:https (LISTEN)