Ir al contenido

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ó.

  • 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 el pid.
  • Cada proceso se termina junto con sus procesos hijos, y la actividad espera hasta timeout ms 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 = true tambié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.

Ninguno. Pero debes indicar name o pid.

ParámetroTipoPor defectoDescripción
namestring—Nombre del proceso, con o sin .exe (p. ej. "facturador"). Se terminan todos los procesos con ese nombre.
pidint—Identificador del proceso (p. ej. la salida de Open App). Úsalo en lugar del nombre para terminar un solo proceso.
allSessionsboolfalseTerminar también los procesos de otras sesiones de Windows (otros usuarios o robots en la misma máquina).
timeoutint10000Milisegundos 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).

MensajeCausa 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 denegadoEl 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.

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: pid

Terminar solo la instancia que abrió el propio robot:

Open App path = "C:/Programas/Facturador/facturador.exe" → output: pid
... trabajo ...
Kill Process pid = pid
  • 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.