Tengo un script de python que usa los comandos SIGSTOP y .SIGCONT con os.kill para pausar o reanudar un proceso. ¿Hay alguna manera de determinar si el PID relacionado se encuentra en estado pausado o reanudado?¿Hay alguna manera de determinar si un PID de Linux está en pausa o no?
Respuesta
Puede encontrar información sobre un proceso en su directorio/proc (/proc/<PID>
). En concreto, puede encontrar su estado correr con esta expresión Python:
open(os.path.join('/proc', str(pid), 'stat')).readline().split()[2]=='T'
EDIT: Esta expresión siguiente corrige un error (presumiblemente raro) con el original:
re.sub(r'\(.*\)', '()', open(os.path.join('/proc', str(pid), 'stat')).readline()).split()[2]=='T'
llama a ps y comprueba el valor STAT. D Sueño ininterrumpible (generalmente IO) R En ejecución o ejecutable (en la cola de ejecución) S Inactividad de espera (esperando a que se complete un evento) T Detenido, ya sea por una señal de control de trabajo o porque se está rastreando. W paginación (no es válido desde el núcleo 2.6.xx) X muerto (nunca debe verse) Z Proceso difunto ("zombie"), terminado pero no cosechado por su padre.
Gracias, utilicé ps axo fname, stat, pid y eso funcionó como usted dijo, no sabía que el valor STAT era para eso. – CobraBytez
Puede utilizar psuti l:
>>> import psutil
>>> pid = 1243
>>> p = psutil.Process(pid)
>>> p.status
0
>>> str(p.status)
'running'
>>> p.status == psutil.STATUS_RUNNING
True
>>>
>>> p.suspend()
>>> p.status
3
>>> str(p.status)
'stopped'
>>> p.status == psutil.STATUS_STOPPED
True
>>>
>>> p.resume()
>>> str(p.status)
'running'
>>>
- 1. ¿Hay alguna manera de determinar si un usuario está utilizando banda ancha o marcación
- 2. ¿Hay alguna manera de determinar si un menú desplegable de <select> está abierto?
- 3. ¿Hay alguna manera para que un programa GWT diga si está en modo alojado o web?
- 4. ¿Forma rápida de determinar si existe un PID en (Windows)?
- 5. ¿Existe alguna manera confiable de determinar si una pestaña o ventana del navegador está inactiva o no está enfocada?
- 6. ¿Hay alguna manera de detectar si el apk está almacenado en la tarjeta SD o no?
- 7. ¿Hay alguna manera de determinar la cantidad de RAM de video gratuita en Linux?
- 8. ¿Hay alguna manera de determinar si una selección HTML está actualmente abierta?
- 9. ¿Hay alguna manera de verificar si el puntero está colgando?
- 10. En ColdFusion, ¿hay alguna manera de determinar en qué servidor se está ejecutando el código?
- 11. ¿Hay alguna manera de verificar si el anclaje está activo?
- 12. ¿Hay alguna manera de descompilar Linux .so?
- 13. Determinar si swf está en un reproductor o modo "depurar"
- 14. ¿Hay alguna manera de determinar si un paquete tiene estado en Oracle?
- 15. ¿Hay alguna manera de averiguar qué está usando un módulo kernel de Linux?
- 16. ¿Hay alguna forma de detectar si un objeto está bloqueado?
- 17. ¿Hay alguna manera RESTful de determinar si un POST tendrá éxito?
- 18. ¿Hay alguna manera de inspeccionar el rpath actual en Linux?
- 19. ¿Hay alguna manera de determinar si un correo electrónico llega a su destino?
- 20. ¿Hay alguna manera en Eclipse para determinar qué está consumiendo tiempo de CPU?
- 21. ¿Hay alguna forma de determinar si el código GWT se está ejecutando en modo de desarrollo?
- 22. En Win32, ¿hay alguna manera de probar si un socket no es bloqueante?
- 23. ¿Hay alguna forma de determinar si la aplicación de Android se está ejecutando a pantalla completa?
- 24. ¿Hay alguna forma de determinar si el iphone está en itinerancia?
- 25. Cómo determinar si un módulo específico está cargado en el núcleo de Linux
- 26. ¿Hay alguna manera de verificar document.ready() si jQuery no está disponible?
- 27. Determinar si un archivo está abierto
- 28. ¿Hay alguna manera de determinar el tamaño físico del monitor?
- 29. ¿Hay alguna manera de detectar si la aplicación se instaló con Market o no?
- 30. Determinar si MailItem está abierto en modo Redactar o Leer
No usando os.path.join! ... espera, esta es una pregunta de Linux. – janislaw
@janislaw - gracias. –