FYI: This is not a perl script. It’s a compiled C program. Just its extension is .pl!
For more information:
This is my module config:
exec netbill_pre_auth{
wait = yes
program = /etc/netbill/preauth.pl"
input_pairs = request
output_pairs = config
packet_type = Access-Request
}
exec netbill_post_auth {
wait = yes
program = /etc/netbill/auth.pl"
input_pairs = request
output_pairs = reply
packet_type = Access-Request
}
exec netbill_acct {
wait = yes
program = /etc/netbill/acct.pl"
input_pairs = request
output_pairs = reply
packet_type = Accounting-Request
}
So I need to use with exec-wait becos the external programs need to wait util authentication/authorization/accounting done!
Also plz note that auth.pl forks another exec program per authenticated user (named calc) and will live till user stopped. So if I’ve 20.000 online users, I’ve also 20.000 calc process.
It works for about 20.000 online user and after this threshold, it stops!
What is ur recommendation?
Another Q:
Is there any way to call nebtill_acct with wait=no?
Ali Majdzadeh wrote:Hmmm... you're probably using "exec wait', right? And starting many,
> A while after radius up, it reports:
>
> Sat Nov 26 13:02:03 2011 : Error: Couldn't fork /etc/netbill/acct.pl
> : Cannot allocate memory
many, external programs.
That's probably the issue. There may be a bug in the server, but
there is a better way to run the script. Use the rlm_perl module.
Alan DeKok.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html