Perl script gibt“error closing /usr/sbin/sendmail: No child processes (exit -1)”

Begonnen von ritchie, 04 August 2021, 18:41:27

Vorheriges Thema - Nächstes Thema

ritchie

Hallo Zusammen,

ich musste bei meinem System die eMail Benachtigung abändern, da das verwendete eMailprogramm "sendemail" im Basispaket nicht mehr enthalten ist.
Hierzu verwendet ich jetzt die folgende Funktion über den Zusatz MIME::Lite :

sub DebianMail
{
my $to = shift;
my $subject = shift;
my $message = shift;
my $from;
my $msg;

$from = "<emailaddress@myProvide.de";
$msg = MIME::Lite->new(
From => $from,
To => $to,
Subject => $subject,
Type => 'multipart/mixed'
) or die "Error creating multipart container: $!\n";

### Add parts (each "attach" has same arguments as "new"):
$msg->attach(
Type => 'TEXT',
Data => $message
) or die "Error adding the text message part: $!\n";

$msg->send_by_sendmail;
return;
}


Die eMail wird korrekt versendet, aber ich bekomme im Logfile von FHEM den folgenden Eintrag:
Zitat
error closing /usr/sbin/sendmail: No child processes (exit -1)"

Die Konfiguration des neuen eMail Client (dma) ist ebenfalls korrekt.

Kann mir jemand sagen, wieso ? Was muss ich dafür ändern, das diese Meldung nicht mehr erscheint ?

Viele Grüße
R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

frober

Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Otto123

Hi,

Zitat von: ritchie am 04 August 2021, 18:41:27
Kann mir jemand sagen, wieso ?

Naja hier steht:
ZitatReturns true on success, false or exception on error.
Die Mail wird zwar gesendet aber es gibt offenbar einen Fehler.

Ich kann zu Deiner neuen Methode wenig sagen, kommt der Logeintrag auch wenn Du den return setzt?

return "Mail gesendet";

In welchem Basispaket ist sendemail nicht mehr dabei? Das musste man doch immer nachinstallieren?

Gruß Otto

P.S. ::)
ZitatMIME::Lite is not recommended by its current maintainer.
:-\
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ritchie

Hi,

Zitat$msg->send_by_sendmail;   
Ist eine fertige Methode, welche das Programm "Sendmail" aufruft.

Zitatreturn "Mail gesendet";
Werde ich mal ausprobieren!

ZitatIn welchem Basispaket ist sendemail nicht mehr dabei? Das musste man doch immer nachinstallieren?
Das Linux was ich verwende ich eine Firewall. Hier kann ich ohne weiteres nicht etwas hinzu installieren, es sei den,
ich habe das dem Kernel hinzugefügt. Habe ich auch schon gemacht, versuche ich aber zu umgehen, weil ich das
je nach Update der Firewall dann wieder neu machen muss. Compilieren dauert da mal eben 4 Stunden.

Viele Grüße
R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Otto123

und da suchst Du Dir ausgerechnet ein Modul aus, was der Maintainer selbst nicht empfiehlt?  :o
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frober

Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

betateilchen

Zitat von: frober am 05 August 2021, 19:01:58
Hast du mal geschaut, ob der Pfad stimmt?

Wenn dem nicht so wäre, würde die email vermutlich nicht verschickt.

Zitat von: ritchie am 04 August 2021, 18:41:27
Die eMail wird korrekt versendet, aber ich bekomme im Logfile von FHEM den folgenden Eintrag:

/usr/sbin/sendmail ist im Normalfall nur ein symbolischer Link zum tatsächlich verwendeten MTA im Beispiel vermutlich dma.

Zitat von: ritchie am 04 August 2021, 18:41:27
Die Konfiguration des neuen eMail Client (dma) ist ebenfalls korrekt.

Hoffentlich :)

Hast Du mal probiert, vor dem

$msg->send_by_sendmail;

ein

$msg->quiet(1);

einzufügen? Soll man zwar nicht machen (mich würde die Logausgabe nicht stören) aber vielleicht kannst Du damit den Logeintrag unterdrücken.




Mal was ganz anderes: Wie rufst Du denn Deine Funktion DebianMail() überhaupt auf?
Mich wundert, dass perl überhaupt anfängt, nach einem chield-Prozess zu suchen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

über die von Dir genannte Meldung würde 2013 schon bei perlmonks diskutiert...

https://www.perlmonks.org/?node_id=1063866

Das scheint also kein FHEM-spezifisches Problem zu sein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ritchie

Hallo Zusammen,
vielen Dank für die zahlreichen Antworten. Ich komme heute Abend wohl dazu das ganze zu prüfen.

Das es kein FHEM spezifisches Problem ist, dachte ich mir eigentlich schon, dachte eher, das evtl.
jemand das gleiche Problem schon hatte und eine Lösung gefunden hat.

Die Funktion DebianMail wird ganz normal innerhalb einer Funktion aufgerufen.
Hier wird nicht mit fork herumgespielt. Daher war ich ja selbst über die Meldung "No child processes (exit -1)"
verwundert.

Zitat
und da suchst Du Dir ausgerechnet ein Modul aus, was der Maintainer selbst nicht empfiehlt? 
Da es Teil der Firewall ist und hier in der eMailbenachrichtigung die gleiche Funktion verwendet wird (hier habe ich mir das abgeschaut),
gehe ich davon aus, das die Jungs das Modul selber pflegen. Ich werde das aber mal bei den anmerken.

Viele Grüße
R.

IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

Otto123

Hi,

Zitat von: ritchie am 06 August 2021, 11:41:49
Da es Teil der Firewall ist und hier in der eMailbenachrichtigung die gleiche Funktion verwendet wird (hier habe ich mir das abgeschaut),
gehe ich davon aus, das die Jungs das Modul selber pflegen. Ich werde das aber mal bei den anmerken.
Du meinst sendmail oder das Perl Modul oder beides?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ritchie

Hallo Otto,
beides.

Edit:
$msg->quiet(1);   
Log kommt trotzdem :-(


Viele Grüße
R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

ritchie

Hallo Zusammen,

hier meine ersten Ergebnisse von den Test.
Abschalten kann man den Logeintrag nicht.


Log 1, "DebianMail Start : $to / $subject  / $message" ;

$msg->send_by_sendmail;

Log 1, "DebianMail end : $to / $subject  / $message" ;


if( $msg->last_send_successful() )
        {
        Log 1, "DebianMail successfully end : $to / $subject  / $message" ;
        }
    else
        {
        Log 1, "DebianMail not successfully end : $to / $subject  / $message" ;
        }


Im Logfile erscheint nur der Log "DebianMail Start :...."
Die Funktion wird nach Send_by_SendMail abgebrochen. Weitere Logeinträge erscheinen nicht im Log.

Auch die Funktionen hinter dem Aufruf der Funktion "DebianMail" innerhalb eines Notify werden nicht ausgeführt.

Viele Grüße
R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv