¿Hay alguna manera de pausar un proceso (ejecutando desde un ejecutable) para que detenga la carga de la CPU mientras está en pausa, y espera hasta que esté sin pausar para continuar con su trabajo? Posiblemente en python, o de alguna manera accesible por python.¿Pausando un proceso?
Respuesta
Mediante el uso de psutil (https://github.com/giampaolo/psutil):
>>> import psutil
>>> somepid = 1023
>>> p = psutil.Process(somepid)
>>> p.suspend()
>>> p.resume()
estás pensando en SIGTSTP - la misma señal que ocurre cuando presionas CTRL-Z
. Esto suspende el proceso hasta que se obtiene SIGCONT.
Por supuesto, algunos programas simplemente 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 programa de Python. utilizar os.kill()
y ¿cómo lo vuelvo a suspender para que continúe funcionando desde donde estaba antes? –
Enviar un SIGCONT –
SIGSTOP no se puede bloquear y sería un poco más preciso en este contexto, no proveniente de un tty. http://en.wikipedia.org/wiki/SIGSTOP – msw
No es un (casi) nativa manera de hacer esto en Python, y es bastante simple:
import time
time.sleep(5)
En este snippet, 5
es el número de segundos que desea detener su programa.
Esto no responde la pregunta; que se trata de pausar * otro * proceso. – bfontaine
acabo implementado esto con señales de pitón o menos así:
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 do_something()
cuando recibe la señal USR1, por ejemplo a través de un
kill -USR1 <pid>
comando.
Sin embargo, esto solo funcionará en UNIX.
- 1. Pausando la consola de Python
- 2. Pausando la ejecución de Javascript hasta que presione el botón
- 3. Pausando setInterval cuando la página/navegador está fuera de foco
- 4. Ejecutar un proceso o hilo por separado en Qt
- 5. cómo ralentizar un proceso?
- 6. "Gracefully" matando un proceso
- 7. ¿Cómo matar un proceso secundario por el proceso principal?
- 8. ¿Es posible UAC elevar un proceso sin iniciar otro proceso?
- 9. Iniciar un nuevo proceso y matar el proceso actual
- 10. ¿Ejecuta un proceso desde la memoria dentro de otro proceso?
- 11. Buscar todos los hilos de un proceso dado proceso id
- 12. ¿Qué es un proceso ininterrumpible?
- 13. ¿Iniciando un proceso en Java?
- 14. ¿Cómo matar un proceso C#?
- 15. Pila Caminar un proceso depurado
- 16. Cómo finalizar correctamente un proceso?
- 17. ¿Cómo matar un proceso nohup?
- 18. Iniciar un proceso por separado
- 19. Java: Obtenga un proceso dado un pid
- 20. Comience un proceso con un nombre
- 21. He comenzado un proceso, ¿cómo puedo llamar a un método en ese proceso?
- 22. Señalización a un proceso primario de que un proceso hijo está completamente inicializado
- 23. ¿Cómo notifico un proceso de cambio de una base de datos SQLite en un proceso diferente?
- 24. ¿Cuánto proceso debe seguir un solo desarrollador? ¿Es demasiado un proceso formal?
- 25. Proceso de ejecución dado el proceso handle
- 26. Iniciar proceso no elevada de proceso elevada
- 27. ¿Puedes comenzar un proceso externo con Silverlight?
- 28. ¿Puede un proceso elevarse luego del inicio?
- 29. Busque un ID de proceso por nombre
- 30. Python REPL para un proceso en ejecución
¿te refieres a proceso de hilo o sistema en ejecución? – ukanth
un proceso de sistema en ejecución. –
Me inclinaría a reducir la prioridad del proceso en lugar de "detenerlo". De esta forma, otros procesos irán primero al –