Thread perl Ausgabe in Datei funktioniert nicht als cron Job (4 answers)
Opened by NoaH at 2017-02-26 08:30

Gast wer
 2017-02-26 11:27
#186172 #186172
Machst du vorher ein close(STDOUT); close(STDERR)? Es kann sein das Perl durcheinander kommt weil cron schon eine Umleitung macht. Ausgaben werden ja von cron entweder in eine Datei geschrieben oder per Mail versendet.

Ich glaube "fdopen" agiert auf der falschen Ebene. Es setzt auf der OS Ebene eine FileDescriptorID sofern ich mich richtig erinnere. Es ziemlich das selbe was auch Cron macht. Ich würde vermuten das Cron hier die ID mit der eigenen überschreibt.
Ich würde die Umleitung eher über die Perl-Handles so machen:

Code (perl): (dl )
1
2
3
close(STDOUT);
open ( my $LOG, ">", $logfile );
*STDOUT = $LOG;


oder

Code (perl): (dl )
1
2
3
close(STDOUT);
open ( my $LOG, ">", $logfile );
open(STDOUT, ">&=", $LOG)


Das kann bei Binary-Modulen Probleme machen, die mit "cout" auf STDOUT schreiben, sollte aber auch mich Cron funktionieren, denke ich.
Last edited: 2017-02-26 11:38:26 +0100 (CET)

View full thread perl Ausgabe in Datei funktioniert nicht als cron Job