Eine lange Verarbeitungsaufgabe einfrieren / anhalten

0

Ist es möglich, eine lange Verarbeitungsaufgabe (z. B. einen dreitägigen Rechenauftrag python.exe myscript.py) mit Windows 7 einzufrieren / anzuhalten ?

Oder allgemeiner ist es möglich, einen Windows-Prozess anzuhalten?


(Im Falle von Python könnte ich natürlich das atexitModul verwenden, den Status beim Beenden speichern, dann den Prozess beenden und später fortsetzen, aber das wäre hier nicht Thema - ich suche nach einer "allgemeineren" Lösung.)

Anwendungsfälle:

  1. Sie starten eine lange Verarbeitungsaufgabe mit 25% oder 50% oder 100% der CPU, möchten den Computer dann jedoch einige Stunden lang normal verwenden

  2. Sie haben einige Stunden lang Laptop-Akku und möchten den Computer normal verwenden, ohne den Akku aufgrund der CPU-intensiven Aufgabe zu schnell zu verbrauchen: Frieren Sie ihn ein!

Hinweis: Das Verringern der Prozesspriorität in Task Managerwürde das Problem nicht lösen: Wenn der Rest des Computers im Leerlauf ist, würde der rechenintensive Prozess immer noch auf 25, 50 oder 100% der CPU gehen und ist daher ungelöst

Basj
quelle
Nicht sicher, ob dies im Zusammenhang steht, aber es könnte sein: ss64.com/nt/pssuspend.html , docs.microsoft.com/en-us/sysinternals/downloads/pssuspend
Basj
Dies ist die Antwort :)
DavidPostill
Ok @DavidPostill :) Aber wie verwende ich es, pssuspend \\workstation64 pythonwenn es 2 oder 3 verschiedene Prozesse / Instanzen desselben gibt python.exe? Auch gäbe es eine TaskManager++Software, ähnlich dem Standard-Task-Manager, aber das würde dies in einer netten GUI beinhalten, welche eine Play / Pause-Taste?
14.
Verwenden startSie diese Option, um Ihre Python-Prozesse auszuführen und ihnen einen eindeutigen Namen zu geben. Dann mit Namen aussetzen.
DavidPostill
Wie kann startich einen benutzerdefinierten Namen vergeben? Würde es auch diese Frage lösen (die aktuelle Lösung ist nicht wirklich gut) stackoverflow.com/questions/38420116/… ?
14.

Antworten:

1

In der Ressourcenüberwachung ( PERFMON.EXE /resoder unter Start> Alle Programme> Zubehör> Systemprogramme> Ressourcenüberwachung ) können Sie mit der rechten Maustaste auf einen beliebigen Prozess klicken und ihn anhalten (und später fortsetzen). Sie können Ihren Prozess leicht an der CPU-Auslastung erkennen. PERFMON.EXE

Es wird eine Warnung angezeigt, dass dies zu einem Absturz Ihres Systems führen könnte, Sie können es jedoch für Nicht-Systemprozesse ignorieren (aber natürlich nicht die erforderlichen Systemprozesse aussetzen!).

Der Ressourcenmonitor ist Teil von Standard-Windows (es muss nichts heruntergeladen oder installiert werden). Dies funktioniert auf jeden Fall unter Windows 7 und Windows 10. Ich würde die meisten anderen Versionen auch denken, aber ich kann es nicht verifizieren.

Aganju
quelle
0

Neben @ Aganju Antwort, hier ist , wie es starten von CTRL+ ALT+ SHIFT ESCAPEmit AutoHotkey:

!^+Escape::
Run perfmon.exe /res
return

(Ähnlich wie bei CTRL+, bei SHIFT ESCAPEdem es sich um den regulären Task-Manager handelt.)

Basj
quelle
0

Ich habe eine noch einfachere Lösung gefunden:

Wenn der python.exeProzess in einem Windows- cmd.exeFenster ausgeführt wird und alle paar Sekunden Text gedruckt wird (Protokollierung), können Sie einfach auf eine beliebige Stelle in diesem Fenster klicken und die Maus ziehen. Dadurch wird eine Auswahl sichtbar.
Wenn eine Auswahl getroffen wird, wird der Prozess angehalten (Sie können im Task-Manager überprüfen, ob der Prozess auf CPU 0% abfällt). Um fortzufahren, drücken Sie einfach Enter!

Sehr einfache Möglichkeit, einen Python-Prozess anzuhalten :)

Bildbeschreibung hier eingeben

PS: diese Art von Auswahl zu ermöglichen , in cmd.exe, was Sie tun müssen ALT SPACE, Eigenschaften , aktivieren Schnell bearbeiten .

Basj
quelle