Post Init (Fan-) Script - Frage zur Ausführung

Status
Not open for further replies.

Grinchy

Explorer
Joined
Aug 5, 2017
Messages
78
Hallo zusammen,

ich benutze nun schon seit einigen Monaten ein Script aus dem Forum zur Steuerung der Lüfter und hatte dieses bislang immer als Post Init Script ausgeführt.

Jetzt gibt es bei dieser Vorgehensweise nur leider das Problem, das dieses Script beim ausführen alle 2 Minuten den Lüfterstatus ausgibt. An sich ist dies kein Problem, nur wird hierdurch leider das Shell etwas zugespamt und ich müsste das Script erst anhalten und Befehle direkt an der Maschine einzugeben (siehe Screenshot).

Gibt es hier irgendeine Möglichkeit das Script als Post Init (oder besser Pre Init) auszuführen, aber die aus dem ausführen resultierenden Meldungen zu blockieren?

Also hier zB. nur die Meldung "Lüftersteueung gestartet" erscheint und der Boot danach normal weitergeht? Das Script logt ja sowieso alles in eine Datei, weswegen die Anzeige im Shell für mich sinnlos ist.


Liebe Grüße
 

Attachments

  • freenas.jpg
    freenas.jpg
    160.2 KB · Views: 212

MrToddsFriends

Documentation Browser
Joined
Jan 12, 2015
Messages
1,338
Das Zauberwort hierfür heißt "Console Redirection". Das einfachst mögliche Beispiel für eine solche Console Redirection wäre, dieses Script statt mittels
/path/to/scriptname.sh
dann mittels
/path/to/scriptname.sh > /var/log/scriptname.log
aufzurufen. In diesem Beispiel landet der Output dann im Ordner /var/log und man sollte sich besser vorher vergewissern, dass es dort nicht bereits ein gleichnamiges Logfile gibt, das für andere Zwecke verwendet wird.

Ebenfalls noch mehr oder weniger wichtig zu wissen: Im oben genannten Beispiel
- gibt es keine solche "Lüftersteueung gestartet" Meldung wie von Dir erwünscht
- wird lediglich die Standardausgabe (stdout) in das Logfile umgeleitet und nicht auch noch der ebenfalls vorhandene Standardfehlerkanal (stderr), Letzterer wird aber von Deinem Script aber möglicherweise nicht verwendet und letztlich
- dass der umfänglichere Umgang mit stdout, stderr und deren Redirection dann leider unter verschiedenen Shell-Varianten unterschiedlich ist.
- Ein > als einfachst mögliche Redirection von stdout funktioniert meines Wissens unter jeder (Unix-)Shell.

Ein ausführlicheres Beispiel zeigt Stux hier in seinem Posting zu seinem eigenen Fan Controller Script:
https://forums.freenas.org/index.php?threads/script-hybrid-cpu-hd-fan-zone-controller.46159/

Dabei verwendet er ein eigenes "start_fan_controller" Script, das dazu da ist, eine Meldung beim Start auszugeben und die Console Redirection umfänglicher zu behandeln (dort mit &>>). Dieses Aufruf-Scipt läuft unter der bash wie der Shebang in der ersten Zeile zeigt. Welche Möglichkeiten der Redirection man sonst noch unter der bash hat, steht im bash Manual
https://www.gnu.org/software/bash/manual/html_node/Redirections.html

Nebenbei: Du verwendest die folgenden Fan Controller Scripten, korrekt?
https://forums.freenas.org/index.php?resources/fan-scripts-for-supermicro-boards-using-pid-logic.24/
 

Grinchy

Explorer
Joined
Aug 5, 2017
Messages
78
Erst einmal Vielen dank für den Ausführlichen Post, das hat mir wirklich geholfen! :smile:

Ich hatte es jetzt mal mit /path/to/scriptname.sh > /var/log/scriptname.log probiert und es funktioniert super. Der einzige Nachteil hier wäre halt, das der Bootvorgang (zB. bei Verwendung als Pre Init Script) genau wie beim ursprünglichen Ausführen ohne > angehalten wird, bis man das Script abbricht.

Aber bei dem extra Script aus dem von dir verlinkten Beitrag setzt er alles direkt nach dem ausführen fort. Dies ist für mich also die perfekte Lösung, Vielen dank!



Ja genau, dieses verwende ich.
 
Status
Not open for further replies.
Top