Congelare / mettere in pausa un'attività di elaborazione lunga


0

È possibile congelare / mettere in pausa un'attività di elaborazione lunga (ad esempio un processo di calcolo di 3 giorni python.exe myscript.py) con Windows 7?

O più in generale è possibile mettere in pausa qualsiasi processo di Windows?


(Ovviamente nel caso di Python, potrei usare il atexitmodulo, salvare lo stato all'uscita, quindi terminare il processo e riprenderlo più tardi, ma questo sarebbe fuori tema qui - Sto cercando una soluzione più "generale")

Casi d'uso:

  1. si avvia un'attività di elaborazione lunga utilizzando il 25% o il 50% o il 100% della CPU, ma si desidera utilizzare normalmente il computer per alcune ore

  2. stai usando la batteria del laptop per alcune ore e vuoi usare il computer normalmente, ma senza usare la batteria troppo velocemente a causa del compito intensivo della CPU: congelalo!

Nota: abbassare la priorità del processo Task Managernon risolve il problema: se il resto del computer è inattivo, il processo ad alta intensità computazionale andrebbe comunque al 25, 50 o 100% della CPU completa, e quindi 2. non è risolto


Non sono sicuro che ciò sia correlato, ma potrebbe essere: ss64.com/nt/pssuspend.html , docs.microsoft.com/en-us/sysinternals/downloads/pssuspend
Basj

Questa è la risposta :)
DavidPostill

Ok @DavidPostill :) Ma come utilizzare pssuspend \\workstation64 pythonse ci sono 2 o 3 processi / istanze differenti della stessa python.exe? Inoltre ci sarebbe un TaskManager++software, simile al Task Manager standard, ma che includerebbe questo in una bella interfaccia grafica, che è un pulsante Riproduci / Pausa?
Basj,

Utilizzare startper eseguire i processi Python e assegnare loro un nome univoco. Quindi sospendere per nome.
DavidPostill

Come startconsente di assegnare un nome personalizzato? Risolverà anche questa domanda (la soluzione attuale non è davvero eccezionale) stackoverflow.com/questions/38420116/… ?
Basj,

Risposte:


1

In Resource Monitor ( PERFMON.EXE /reso Start> Tutti i programmi> Accessori> Strumenti di sistema> Resource Monitor ), puoi fare clic con il tasto destro su qualsiasi processo e "Sospenderlo" (e successivamente "Riprendi"). È possibile identificare facilmente il processo in base all'utilizzo della CPU. PERFMON.EXE

Ci sarà un avvertimento che ciò potrebbe causare l'arresto anomalo del sistema, ma è possibile ignorarlo per i processi non di sistema (ma ovviamente non sospendere i processi di sistema richiesti!)

Resource Monitor fa parte di Windows standard (non è necessario scaricare o installare nulla); questo funziona sicuramente con Windows 7 e Windows 10; Penserei anche alla maggior parte delle altre versioni, ma non riesco a verificarlo.


0

Oltre alla risposta di @ Aganju, ecco come avviarlo da CTRL+ ALT+ SHIFT ESCAPEcon AutoHotkey:

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

(simile a CTRL+ SHIFT ESCAPEche è il normale Task Manager)


0

Ho trovato una soluzione ancora più semplice:

Se il python.exeprocesso viene eseguito in una cmd.exefinestra di Windows e stampa del testo ogni pochi secondi (registrazione), è possibile fare clic in un punto qualsiasi di questa finestra e trascinare il mouse per rendere visibile una selezione.
Quando viene effettuata una selezione, il processo viene messo in pausa (è possibile controllare in Task Manager: il processo scenderà alla CPU 0%). Per riprendere, basta premere Enter!

Modo molto semplice per mettere in pausa un processo Python :)

inserisci qui la descrizione dell'immagine

PS: per consentire questo tipo di selezione cmd.exe, è necessario eseguire ALT SPACE, Proprietà , Abilita modifica rapida .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.