Munin und SLES10

Vor kurzem hatte ich das zweifelhafte Vergnügen munin (genauer die Version 1.4.4) auf einem Suse Linux Enterprise 10 (Patchlevel 3) zur mitarbeit zu bewegen. Übersetzt und installiert hat die Software ein Kollege. Einrichten und testen war meine Aufgabe. Also schnell mal ein zwei unkritische Plugins aktiviert und via telnet getestet. list nannte brav die zwei aktivierten Plugins, ein fetch brachte jedoch nichts zurück. Ein direkte Aufruf zeigte jedoch dass die Plugins grundsätzlich seinen Dienst tuen. Nach lange Fehlersuche und viel googeln hatte ich endlich die Lösung. Es handelt sich offenbar um ein etwas seltsames Verhalten, des bei Suse verwendeten Perl 5.8.8. exec() schreibt nach STDERR aber nicht nach STDOUT. Dazu gibt es auch das Ticket #846. Der dort enthaltene Patch:

--- node/lib/Munin/Node/Service.pm.orig 2010-04-26 12:33:56.217889267 +0000
+++ node/lib/Munin/Node/Service.pm      2010-04-26 14:07:09.951259792 +0000
@@ -212,7 +212,14 @@
     print STDERR "# About to run '", join (' ', @command), "'\n" 
        if $config->{DEBUG};
 
-    exec @command;
+    # work around exec bug in SLES10's Perl
+    # exec @command;
+    my $res = `@command`;
+    print STDERR "# '", join (' ', @command), "' returned $res\n"
+        if $config->{DEBUG};
+    print STDOUT $res;
+    exit;
+
 } 

löst das Problem und der Rabe erinnert sich fortan bei bedarf an die Performancedaten.

Dieser Beitrag wurde unter Linux abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.