AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

mpg123 zombie

Unix Way 20 сообщений -
#1

Собственно сабж.
Появляются zombie mpg123 процессы в некоторых количествах, которые не убиваются kill -9 $mpg123_PID, так как родительский (parent) процесс, то есть процесс asterisk'a, еще работает. Вышеуказанные гадины кушают по-немногу память сервера (ладно хоть что не процессорное время) и живут в ней, пока не будет перезапущен asterisk.
Вопрос: 1) кто сталкивался с такими zombie'ками?
2) как с ними боролся?
3) как с этим бороться правильно, т.е. на корню разрешить проблему?

Ссылки по теме:
http://www.erlenstar.demon.co.uk/unix/faq_8.html#SEC83
http://www.opennet.ru/base/dev/wait_zombie.txt.html
http://www.opennet.ru/base/dev/chldfork.txt.html
#2

У на с кушали процессорное время, до 78%, всего два процесса mpg123.

1) мы
2) примитивно Crying or Very sad - stop now, kill -9 mpg123_PID в некритичное время.
3) I da know.
#3

В реале можно скрипт попробывать сделать чтобы показывал какой процесс жрёт более N% процессора и килять его по kill -9

ps -awxl | grep mpg123
далее парсишь смотришь и киляешь

ps axostat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm | grep mpg123
далее если CPU более скольких то, то киляй Smile воть
относительная панацея... лечить никак
#4

Romik писал(а):
процессы в некоторых количествах, которые не убиваются kill -9 $mpg123_PID, так как родительский (parent) процесс, то есть процесс asterisk'a, еще работает.
#5

Ну... Переходите на FreeBSD Smile
PS: как в рекламе "переходи на лучшее"
#6

К делу...

Убийство зомбиков: Smile
Код:
#!/bin/bash
## Romik 2005© :)
# This is under the terms of GNU GENERAL PUBLIC LICENSE
# See http://www.gnu.org/licenses/gpl.txt for details
#
for pid in $(ps aux | grep defunct | grep -v grep | awk '{print $2}')
do
echo "Killing zombie with PID $pid"
kill -9 $pid
done
exit $?
#7

Chris писал(а):
Ну... Переходите на FreeBSD Smile
PS: как в рекламе "переходи на лучшее"
не факт что там нет своих проблем Wink
#8

Chris писал(а):
Ну... Переходите на FreeBSD Smile
PS: как в рекламе "переходи на лучшее"
На Фре те же самые зомбики! Smile
#9

А чем Вам не нравиться format_mp3 из asterisk-addons?
#10

Как с addpac? Gain нормально или опять пропадание части звуков?
#11

кстати...
killall -9 mpg123
убивает всех зомби махом за раз Wink
зы: можно и в cron запихать.
#12

. писал(а):
кстати...
killall -9 mpg123
убивает всех зомби махом за раз Wink
зы: можно и в cron запихать.
Ты это... в сигналах то разберись... ибо убьет _все_ процессы mpg123... и не только зомби...
________________________________________________________
Chris писал(а):
Ну... Переходите на FreeBSD Smile
PS: как в рекламе "переходи на лучшее"
Да, да! В тему (не флэйм!):
Переходите на Виндоуз! Там все процессы зомби!
"Переходи к зомбям!"
#13

Гость писал(а):
Ты это... в сигналах то разберись... ибо убьет _все_ процессы mpg123... и не только зомби...
То, что убьет - это не страшно, ибо на сервере никто кроме Asterisk'a mpg123 не использует. А то, что у абонента, который именно сейчас ждет ответа пропадет music on hold, тоже ничего, перебьется Wink. Для следующего абонента Asterisk снова mpg123 запустит.
Гость, тоже посмотри еще раз про сигналы. При работающем parent-процессе, zombie child-процесс откликается только на сигналы, передаваемые parent'ом. Так что killall -9 mpg123 для зомбиков при работающем Asterisk'e не сработает.
#14

ну да. я же неговорю именно так и применять Smile всё вот вам надо разжувать и в рот положить Wink

кароче делаем скрипт и суем в крон на ночь когда нет нагрузки или она очень маленькая. (еще можно извратиться и отлавливать момент когда нет ни одного звонка)
ну и делать типа
service asterisk stop
killall -9 mpg123
service asterisk start
проверить что все стартануло (причин для обратного мизер но всетки)
если не стартануло - шлем 10 sms на мобилу\пейджер.
#15

Romik писал(а):
Так что killall -9 mpg123 для зомбиков при работающем Asterisk'e не сработает.
Sure?
Ты попробуй что-ли...
И зомби тут не причем...
________________________________________________________
anest писал(а):
нет нагрузки или она очень маленькая
Прикол - 2 часа ночи... настраиваю пбх... надо рестартануть ибо заптеля касается... 4 канала подняты... пошлют, короче, вместе с кроном.

Далее, я мудак или у меня нет таких проблем с mpg123?
(Точнее, один раз видел, когда не сам собирал mpg123...)

anest писал(а):
. (еще можно извратиться и отлавливать момент когда нет ни одного звонка)
Вот это пожалуй лучше... да и правильно.

anest писал(а):
service asterisk stop

Ну нет у людей команды service, не POSIX это...

anest писал(а):
если не стартануло - шлем 10 sms на мобилу\пейджер.
Кстати, без шлюза как шлем (мне правда интересно)?
#16

Гость, ну что я маленький что ли врать?.... Sad Sad Sad
Код:
[root@pbx2 ~]# ps aux | grep asterisk | grep -v grep | wc -l
30
[root@pbx2 ~]# ps aux | grep mpg123 | grep defunct | wc -l
267
[root@pbx2 ~]# killall -9 mpg123
You have new mail in /var/spool/mail/root
[root@pbx2 ~]# ps aux | grep mpg123 | grep defunct | wc -l
265
[root@pbx2 ~]
Вот как например выгдядит один из зомбиков в 'ps aux'
Код:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
...skipped...
root 28167 0.0 0.0 0 0 ? Z Sep26 0:12 [mpg123]


Последний раз редактировалось: Romik (Сб Окт 29, 2005 02:03)
#17

Ну вы, блин, даете (С)
А про работающие процессы mpg123 Вы как-то умолчали...

И что у Вас за система такая? Must have for testing.
#18

RH AS 4
#19

Romik писал(а):
RH AS 4
Вопросов больше не имею Smile
#20

кстати Гость, вот тебе ссылочка в подарок - можешь в неё тыкать всех по настроению Wink