Freeradius - Exec-Program -> Perl <defunct> Zombie

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
sthiem
Beiträge: 119
Registriert: 12.02.2004 16:29:40

Freeradius - Exec-Program -> Perl <defunct> Zombie [gelöst]

Beitrag von sthiem » 01.05.2007 12:37:53

Hi, ich verwende Freeradius um meine PPPoE EInwahlen zu realisieren. Nun soll bei jedem Status-Update (Start / Stop / Interim-Update) ein Script ausgeführt werden. Dies funktioniert auch fehlerfrei, nur bleibt es nach dem Ausführen als Zombie Prozess im System hängen. Nach ~5 Minuten habe ich 20000 Zombies im System.

Code: Alles auswählen

freeradius-mysql/stable uptodate 1.1.3-3
freeradius/stable uptodate 1.1.3-3
acct_users:

Code: Alles auswählen

#
#       $Id: acct_users,v 1.4 2003/08/13 16:54:40 aland Exp $
#
#       This is like the 'users' file, but it is processed only for
#       accounting packets.
#
DEFAULT Acct-Status-Type == Interim-Update
        Exec-Program = "/usr/local/bin/mtacnt.pl %{Acct-Session-Id}"
DEFAULT Acct-Status-Type == Start
        Exec-Program = "/usr/local/bin/mtacnt.pl %{Acct-Session-Id}"
DEFAULT Acct-Status-Type == Stop
        Exec-Program = "/usr/local/bin/mtacnt.pl %{Acct-Session-Id}"
users

Code: Alles auswählen

DEFAULT Auth-Type=Local
        Exec-Program-Wait="/usr/local/bin/mtauth.pl %{User-Name} %{Calling-Station-Id}"

Code: Alles auswählen

-rwxr-xr-x 1 root freerad 1171 2007-04-10 18:39 mtacnt.pl
-rwxr-xr-x 1 root freerad 4576 2007-04-10 19:22 mtauth.pl
radiusd.conf
http://nopaste.debianforum.de/5719

Da es sich um ein komerzielles Programm handelt, kann ich leider den Inhalt der Skripte hier nicht posten. Der Aufruf von mtauth.pl funktioniert perfekt, es bleiben keine Prozesse hängen. mtacnt.pl macht nur zwei Updates in der MySQL Datenbank (connectionw wird wieder geschlossen), bleibt dann aber als Zombie hängen.
Das gleiche passiert übrigens auch mit einem leeren Perl Script.

Habt ihr eine Idee?

Grüße
sthiem
Zuletzt geändert von sthiem am 03.05.2007 13:46:28, insgesamt 2-mal geändert.

sthiem
Beiträge: 119
Registriert: 12.02.2004 16:29:40

Beitrag von sthiem » 03.05.2007 13:45:43

Problem gelöst. Das Script wollte einfach seine Beendigung melden (Return 0), Radius hat aber nicht gewartet. Kurz die acct_users file geändert und jetzt läuft alles:

Code: Alles auswählen

#
#       $Id: acct_users,v 1.4 2003/08/13 16:54:40 aland Exp $
#
#       This is like the 'users' file, but it is processed only for
#       accounting packets.
#
DEFAULT Acct-Status-Type == Interim-Update
        Exec-Program-Wait = "/usr/local/bin/mtacnt.pl %{Acct-Session-Id}"
DEFAULT Acct-Status-Type == Start
        Exec-Program-Wait = "/usr/local/bin/mtacnt.pl %{Acct-Session-Id}"
DEFAULT Acct-Status-Type == Stop
        Exec-Program-Wait = "/usr/local/bin/mtacnt.pl %{Acct-Session-Id}" 

Antworten