¿Pausando un proceso?

¿Hay una manera de pausar un proceso (ejecutándose desde un ejecutable) para que detenga la carga de la CPU mientras está en pausa, y espera hasta que no esté pausado para continuar con su trabajo? Posiblemente en python, o de alguna manera accesible por python.

Al utilizar psutil ( https://github.com/giampaolo/psutil ):

>>> import psutil >>> somepid = 1023 >>> p = psutil.Process(somepid) >>> p.suspend() >>> p.resume() 

está pensando en SIGTSTP , la misma señal que ocurre cuando presiona CTRL-Z . Esto suspende el proceso hasta que obtiene SIGCONT .

Por supuesto, algunos progtwigs solo pueden capturar e ignorar esta señal, por lo que depende del ejecutable. sin embargo, si puede suspenderlo y reanudarlo manualmente, también puede hacerlo desde un progtwig python. utilizar os.kill()

Acabo de implementar esto con señales en python algo como esto:

 def mysignalhandler(sig, frame): print "Got " + str(sig) if sig == signal.SIGUSR1: do_something() signal.signal(signal.SIGUSR1, mysignalhandler) signal.pause() 

Esto se detendrá en la última línea y llamará a do_something() cuando reciba la señal USR1, por ejemplo a través de

 kill -USR1  

mando.

Esto solo funcionará en UNIX sin embargo.

Hay una forma (casi) nativa de hacer esto en Python, y es bastante simple:

 import time time.sleep(5) 

En este fragmento, 5 es el número de segundos que desea pausar su progtwig.