Verificar ejecución de programa automáticamente con wmic

Muchas veces se requiere que una aplicación siempre se esté ejecutando en un equipo, como parte de una actividad de monitoreo o algo similar. Pero puede ocurrir que la aplicación se cierre por algún tipo de error, o porque un usuario la cierra de manera forzada, para eso se necesita de un proceso de chequeo permanente para verificar ejecución de programa en Windows automáticamente, y si no es así, ejecutarla inmediatamente.

Verificar ejecución de programa
Procesos Windows

Esta función se basa principalmente en el comando “wmic process“, que permite encontrar un proceso específico corriendo en una máquina, junto con algún otra palabra que identifique nuestro programa, con el fin de conocer si está o no activo.

En este ejemplo se busca chequear una aplicación php que debería estar siempre corriendo en la máquina. El comando normalmente se ejecuta de la siguiente forma:

php.exe Explora.php

El batch que verifica que el programa esté corriendo sería como se muestra a continuación:

wmic process where “name=’php.exe'” get CommandLine  | find “Explora.php” /c > NUL
if “%ERRORLEVEL%”==”1” “php.exe Explora.php”

La primera línea busca en los procesos de Windows, uno que contenga la palabra “php.exe”, adicionalmente con la palabra “Explora.php”, y finalmente cuenta la cantidad de veces que encuentra estas coincidencias. Al enviarlo a NUL, el conteo se envía como si fuera un error, si no se muestra ninguna coincidencia, entonces se procede a ejecutar el comando que no está corriendo, si lo encuentra, no se realiza ninguna acción.

Finalmente el batch se programa en una tarea periódica (por ejemplo cada minuto), para verificar ejecución de programa automáticamente.

Este tipo de aplicaciones sencillas son útiles para garantizar la continuidad de un proceso que queremos que siempre esté activo, facilitando su activación casi inmediata ante cierres inesperados; sin consumir casi recursos de la máquina host.

En FireOS SAS les apoyamos en la automatización de procesos de software, donde aplicaciones como éstas hacen parte de una solución integral bajo diferentes sistemas.

Comentarios

Por favor comenta aquí

Deja un comentario