Führen Sie das Programm aus, während der Computer abgekühlt ist

Führen Sie das Programm aus, während der Computer abgekühlt ist

Ich versuche, ein Programm auf einem Computer mit unzureichender Kühlung zu kompilieren.

Bei dem Programm handelt es sich genauer gesagt um den linux-ckKernel mit -mtune=native march=nativeprozessorspezifischen Optimierungen. Es einfach auf einem anderen Computer auszuführen, verfehlt also seinen Zweck.

Wir versuchen derzeit, die Kühlungsprobleme zu lösen.NOTIZ:Ich habe keinen physischen Zugriff auf den Computer. Versuchen Sie daher bitte nicht, mir bei der Fehlerbehebung zu helfen.

Ich brauche stattdessen eine Möglichkeit, das Programm anzuhalten (Shell-Job-Steuerung im „ ^Z-Stil“), wenn die CPU eine bestimmte Temperatur überschreitet (gemessen mit sensors), und es fortzusetzen, sobald die Temperatur wieder auf einem sicheren Niveau liegt.

NOTIZ:Dieser Computer hat schon einmal 91 °C erreicht.

Auf dem Computer läuft Arch Linux und er ist vollständig aktualisiert.

Antwort1

Die Lösung besteht darin, der Variablen eine PID des Hauptjobs zuzuweisen und ein Skript zu schreiben, das:

  • prüft etwa alle ~10 Sekunden die Temperatur. So etwas wie

    temp=($(sensors | awk -F'[+.]' '{print $2}'))
    

    erstellt auf meiner Box eine Tabelle tempmit zwei Temperaturen (acpitz und coretemp). Möglicherweise müssen Sie sie für Ihre Ausgabe anpassen sensors.

  • if temp > $TEMPMAX sendet kill -TSTP PIDan den Job (STRG-Z, auch bekannt als Suspend)

    (( $temp[1] > 80 || $temp[2] > 80 )) && kill -TSTP $JOBPID
    
  • if temp < $TEMPRUN sendet kill -CONT PIDan den Job (dasselbe wie der bg-Befehl)

    (( $temp[1] < 40 && $temp[2] < 40 )) && kill -CONT $JOBPID
    

Da das Skript sehr oft ausgeführt wird, möchten Sie möglicherweise eine temporäre Datei von der Quelle statt vom sensorsBefehl abrufen, um etwas an Geschwindigkeit zu gewinnen. Auf vielen Rechnern funktioniert das:

temp=($(cut -c 1-2 /sys/class/hwmon/hwmon0/temp1_input) $(cut -c 1-2 /sys/class/hwmon/hwmon1/device/temp2_input))

Aber Sie müssen es möglicherweise noch einmal an Ihre Bedürfnisse anpassen.

verwandte Informationen