Nutzt man aus der System-Lib die command-Fuktion, werden die Ausgaben des ausgeführten Kommandos nicht in Echtzeit ausgegeben, sondern "gesammelt" in der Variablen $output und erst am Ende der Ausführung ins Log geschrieben.
Bei langen Ausführungszeiten, z. B. bei der Plugininstallation, ist das sehr störend, weil scheinbar nichts passiert und man die Installation nicht mitverfolgen kann.
Die Ausgabe muss direkt per Redirect ">> $log 2>&1" während der Ausführung ins Log geschrieben werden. Alternativ könnte man auch eine Pipe zum Kommando "tee" verwenden.
Nutzt man aus der System-Lib die command-Fuktion, werden die Ausgaben des ausgeführten Kommandos nicht in Echtzeit ausgegeben, sondern "gesammelt" in der Variablen $output und erst am Ende der Ausführung ins Log geschrieben.
Bei langen Ausführungszeiten, z. B. bei der Plugininstallation, ist das sehr störend, weil scheinbar nichts passiert und man die Installation nicht mitverfolgen kann.
Hier wird das Kommando ausgeführt: https://github.com/mschlenstedt/Loxberry/blob/1e083ff5a6330a9b4417c6bf7e567bf5f477d87b/libs/perllib/LoxBerry/System.pm#L1627
Und hier die Ausgabe nach Beendigung ins Log geschrieben: https://github.com/mschlenstedt/Loxberry/blob/1e083ff5a6330a9b4417c6bf7e567bf5f477d87b/libs/perllib/LoxBerry/System.pm#L1644
Die Ausgabe muss direkt per Redirect ">> $log 2>&1" während der Ausführung ins Log geschrieben werden. Alternativ könnte man auch eine Pipe zum Kommando "tee" verwenden.