Ergebnis 1 bis 5 von 5

Thema: Verständnisfrage pluginfilter.lua / Ausführung von Programmen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    15.11.2007
    Beiträge
    213
    Moinmoin,

    Zitat Zitat von Allmächtiger Beitrag anzeigen
    Irgendjemand wird doch wohl mit dem Monitord Aktionen ausführen lassen...

    Wie stellt ihr das denn an? Bzw. hat jemand eine Beispiel-Datei für mich?
    function pluginFilter()
    if (arg["plugin_name"]=="mysql") then

    if(arg["channelnum"] == "0" and arg["typ"] == "zvei" and string.sub(arg["zvei"], 0, 3) == "234") then
    toexecute = "start cmd /c d:\\xampplite\\php\\php.exe D:\\Programme\\monitord\\meinscriptname.php " .. arg['zvei'] ;
    os.execute(toexecute);
    end

    end
    -- change return value in next line to "return 1" to enable filtering defined above!
    return 0;
    end
    das tut bei mir seit längerem famos.

    Zur Fehlermeldung: "nil value" heißt, dass in der Regel eine Variable nicht belegt ist oder nicht existiert. Das verwundert mich etwas, denn Dein Skript kam mir jetzt nicht spontan falsch vor - die Methode "pluginFilter" existiert und wird ausgeführt, ja?

    Viele Grüße
    Martin

  2. #2
    Registriert seit
    16.12.2004
    Beiträge
    1.102
    Hallo Martin,

    vielen Dank für deinen Beitrag. Ich habe die entsprechenden Zeilen in der PluginThread.cpp von Hand auskommentiert und die Variable z von Hand so gesetzt dass gar nichts gefiltert wird und somit auch keine Fehlermeldung mehr kommt, warum auch immer diese generiert wurde da dieser Aufruf ja meiner Ansicht nach nicht auf eine (Fehl-)Konfiguration des Benutzers zurückzuführen ist sondern direkt aus dem normalen Quelltext kommt. Die Methode pluginFilter existiert und wird auch offensichtlich aufgerufen. MySQL lief tapfer weiter und schrieb jede Alarmierung in die Datenbank, aber mein Programm konnte ich einfach nicht zur Ausführung bringen. Mittlerweile habe ich wieder einen Schritt zurück zum alten monitor gemacht, der bringt nachdem ich auch dort einen Fehler beheben konnte die gewünschten Ergebnisse. Das Projekt Monitord habe ich deswegen für mich persönlich vorerst begraben.

    Für alle, die an der Kompilierung mit MySQL- und LUA-Unterstützung verzweifeln, hier nochmal mein configure-Aufruf. Vielleicht hilft es jemandem und die Arbeit war nicht ganz umsonst (OS: (X)Ubuntu 10.04):

    Zuerst müssen noch zwei benötigte Pakete nachinstalliert werden, es gibt vermutlich noch weitere Abhängigkeiten die dann aber durch die Paketverwaltung von alleine aufgelöst werden:

    Code:
    sudo apt-get install libmysql++-dev liblua5.1-dev
    danach kann kompiliert werden, hier mein ./configure-Aufruf:

    Code:
    ./configure --enable-plugins --with-mysql --with-lua-includes=/usr/include/lua5.1 --with-lua-suffix=5.1
    Erläuterung:

    /usr/include/lua5.1 ist der Pfad in denen sich die LUA-Dateien befinden, in meinem Fall LUA 5.1 - LUA 5.0 liegt im Ordner lua50, 4.0 im Ordner lua40, einfach mal nachschauen welche Version man hat und wo sich die Dateien bei einem befinden.

    lua-suffix ist einfach die LUA-Versionsnummer. Es hat mich SEHR viel Zeit gekostet um zu dieser Erkenntnis zu kommen ;-)


    Wie gesagt, ich hoffe dass vielleicht jemand von dem hier profitiert, damit es nicht ganz umsonst war.
    Geändert von Allmächtiger (12.01.2012 um 15:50 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •