Kill Process
Kill Process
Sección titulada «Kill Process»Tipo: kill-process · Paquete: Desktop Activities v1.0.8 · Salida: int
Desde: v1.0.3
Termina procesos de Windows por su nombre o por su PID. Es la pieza de recuperación ante un error de sistema: una aplicación colgada, o con un diálogo que no se deja cerrar, se termina para volver a abrirla limpia con Open App. Devuelve cuántos procesos terminó.
Cómo funciona
Sección titulada «Cómo funciona»- Por nombre (
name): termina todos los procesos con ese nombre, escrito con o sin.exe("facturador"o"facturador.exe"). - Por PID (
pid): termina un único proceso, por ejemplo el que devolvió Open App. Si indicas los dos, manda elpid. - Cada proceso se termina junto con sus procesos hijos, y la actividad espera hasta
timeoutms a que cada uno desaparezca antes de seguir. - Solo en la sesión del robot: por defecto únicamente toca los procesos de la sesión de Windows donde corre el robot, para no cerrar los de otra persona u otro robot en el mismo servidor. Los de otras sesiones se dejan corriendo y el registro dice cuántos fueron. Con
allSessions = truetambién se terminan esos. - Nunca se termina a sí mismo (el proceso del robot).
- Idempotente: si no hay ningún proceso con ese nombre o PID, no es un error: devuelve
0. Puedes ponerla siempre antes de abrir la aplicación.
Parámetros requeridos
Sección titulada «Parámetros requeridos»Ninguno. Pero debes indicar name o pid.
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
name | string | — | Nombre del proceso, con o sin .exe (p. ej. "facturador"). Se terminan todos los procesos con ese nombre. |
pid | int | — | Identificador del proceso (p. ej. la salida de Open App). Úsalo en lugar del nombre para terminar un solo proceso. |
allSessions | bool | false | Terminar también los procesos de otras sesiones de Windows (otros usuarios o robots en la misma máquina). |
timeout | int | 10000 | Milisegundos que se espera a que cada proceso se cierre. Un valor vacío, 0 o negativo usa 10000. |
Devuelve un int con el número de procesos terminados. Es 0 si no había ninguno en ejecución (o si todos estaban en otras sesiones y allSessions = false).
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
Indica 'name' o 'pid' para saber qué proceso terminar. | Los dos parámetros están vacíos (o pid no es un número). Indica uno de ellos. |
El proceso (PID …) no terminó en … ms. | Windows no terminó de cerrar el proceso dentro de timeout. Sube timeout o reintenta con un Retry. |
| Error de Windows de acceso denegado | El proceso se ejecuta como administrador u otro usuario y la cuenta del robot no puede terminarlo. Ejecuta el robot con una cuenta que tenga ese permiso. |
Ejemplo
Sección titulada «Ejemplo»Recuperar una aplicación colgada: guardar evidencia, terminarla y volver a abrirla limpia.
Try / Catch errorVariable = error ├─ try: │ ... pasos sobre la aplicación ... └─ catch: Take Screenshot path = pathJoin(str(Config["CarpetaCapturas"]), "error.png") → output: captura Kill Process name = str(Config["ProcesoAplicacion"]) → output: cerrados Log message = "Procesos terminados: " + cerrados + ". Captura: " + captura Open App path = str(Config["RutaAplicacion"]) → output: pidTerminar solo la instancia que abrió el propio robot:
Open App path = "C:/Programas/Facturador/facturador.exe" → output: pid... trabajo ...Kill Process pid = pidActividades relacionadas
Sección titulada «Actividades relacionadas»- Open App — volver a abrir la aplicación.
- Take Screenshot — dejar evidencia de cómo estaba la pantalla.
- Win Close — cerrar una ventana de forma ordenada.
- Try / Catch — manejar el error que llevó a la recuperación.