[LUGA] Mit freundlicher Unterstützung von:
Linux New Media AG

Mail Thread Index


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [luga] ISC scripting in dhcpd.conf?



Markus Schabel wrote:
Hallo!

Hab eben entdeckt, daß der dhcpd Daemon von ISC soetwas wie eine Mini
Scriptsprache für ein paar Events zu unterstützen scheint.

on commit
{
}

on expiry
{
}

on release
{
}

Hat jemand von euch Erfahrung damit?
Irgendwelche Dokus dazu bekannt? (ausser Source Code lesen).
Kann man von diesen Events auch externe Prozesse aufrufen?

Ähm, ja, der kann das. Aber irgendwo war da eine Einschränkung. Soweit ich
mich erinnern kann, kann man da zwar normale Prozesse aufrufen, aber die
werden nicht (!) geforket, daher steht der DHCP quasi solange bis der
Prozess beendet wird. Aber ich schau daheim nochmal nach ob ich
irgendwelche Notizen dazu finde, ich hab das jedenfalls damals durch einen
Lease-File-Parser ersetzt.


Leider hab ich meine Notizen nicht mehr gefunden - lang lang ist's her ;-)

Aber ich hab halt dann doch ein bisschen in den Code geschaut, ausführen kann man einen Prozess zum Beispiel mit:

on commit { execute(); }

Wobei execute seit 3.1.0a1 drin ist, davor gab's patches dafür. Laut source (common/dhcp-eval.5) sieht das folgendermaßen aus:

.B execute(\fIcommand-path\fB, \fIdata-expr1\fB ... \fIdata-exprN\fB);\fR
.RS 0.25i
.PP
External command execution is made possible through \fBexecute();\fR
expressions.  These expressions take a variable number of arguments, where
the first is the command name (full path or only the name of the executable)
and is followed by zero or more are data-expressions whose values will be
evaluated and passed as external arguments (assumed to be text strings
suitable for use as a command-line argument).  It returns the numeric return
code of the external command, or one of the following special values:

Und - wie ich mich offenbar richtig erinnern konnte:

Execute is synchronous, and the program will block until the external
command being run has finished. Please note that lengthy program
execution (for example, in an "on commit" in dhcpd.conf) may result in
bad performance and timeouts.  Only external applications with very short
execution times are suitable for use.

Alles klar? Wirklich Erfahrung dazu hab ich keine, wie gesagt hab ich damals die leases geparst, aber das Zeug so zu patchen das er fork't sollte nicht das Problem sein...

lg Markus



powered by LINUX the choice of a gnu generation
linux user group austria;
Suche
Suche
Letzte Änderung:
webmaster@luga.at
September 2010