{"id":333,"date":"2015-06-11T22:51:35","date_gmt":"2015-06-12T03:51:35","guid":{"rendered":"http:\/\/itsoftware.com.co\/content\/?p=333"},"modified":"2020-11-19T16:58:40","modified_gmt":"2020-11-19T21:58:40","slug":"verificar-ejecucion-de-programa-wmic","status":"publish","type":"post","link":"https:\/\/itsoftware.com.co\/content\/verificar-ejecucion-de-programa-wmic\/","title":{"rendered":"Verificar ejecuci\u00f3n de programa autom\u00e1ticamente con wmic"},"content":{"rendered":"<p>Muchas veces se requiere que una <strong>aplicaci\u00f3n<\/strong> siempre se est\u00e9 ejecutando en un equipo, como parte de una actividad de monitoreo o algo similar. Pero puede ocurrir que la aplicaci\u00f3n se cierre por alg\u00fan 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\u00f3n de&nbsp;<strong>programa en Windows autom\u00e1ticamente<\/strong>, y si no es as\u00ed, ejecutarla inmediatamente.<\/p>\n<figure id=\"attachment_334\" aria-describedby=\"caption-attachment-334\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2015\/06\/procesos-windows.jpeg\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-334 size-medium\" src=\"http:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2015\/06\/procesos-windows-300x218.jpeg\" alt=\"Verificar ejecuci\u00f3n de programa\" width=\"300\" height=\"218\"><\/a><figcaption id=\"caption-attachment-334\" class=\"wp-caption-text\">Procesos Windows<\/figcaption><\/figure>\n<p><!--more--><\/p>\n<p>Esta funci\u00f3n se basa principalmente en el comando \u00ab<em><strong>wmic process<\/strong><\/em>\u00ab, que&nbsp;permite encontrar un proceso espec\u00edfico corriendo en una m\u00e1quina, junto con alg\u00fan otra palabra que identifique nuestro programa, con el fin de conocer si est\u00e1 o no activo.<\/p>\n<p>En este ejemplo se busca chequear una aplicaci\u00f3n php que deber\u00eda estar siempre corriendo en la m\u00e1quina. El comando normalmente se ejecuta de la siguiente forma:<\/p>\n<p style=\"padding-left: 30px;\"><em>php.exe Explora.php<\/em><\/p>\n<p style=\"padding-left: 30px;\">El batch que verifica que el programa est\u00e9 corriendo ser\u00eda como se muestra a continuaci\u00f3n:<\/p>\n<p><em>wmic process where \u00abname=&#8217;php.exe'\u00bb get CommandLine&nbsp; | find \u00abExplora.php\u00bb \/c &gt; NUL<\/em><br \/>\n<em>if \u00ab%ERRORLEVEL%\u00bb==\u00bb1\u00bb&nbsp;\u00abphp.exe Explora.php\u00bb<\/em><\/p>\n<p>La primera l\u00ednea busca en los procesos de Windows, uno que contenga la palabra&nbsp;\u00abphp.exe\u00bb, adicionalmente con la palabra \u00abExplora.php\u00bb, y finalmente cuenta la cantidad de veces que&nbsp;encuentra estas coincidencias. Al enviarlo a NUL, el conteo se env\u00eda como si fuera un error, si no se muestra ninguna coincidencia, entonces se procede a ejecutar el comando que no est\u00e1 corriendo, si lo encuentra, no se realiza ninguna acci\u00f3n.<\/p>\n<p>Finalmente el batch se programa en una tarea peri\u00f3dica (por ejemplo cada minuto), para verificar ejecuci\u00f3n de programa autom\u00e1ticamente.<\/p>\n<p>Este tipo de aplicaciones sencillas son \u00fatiles para garantizar la continuidad de un proceso que queremos que siempre est\u00e9 activo, facilitando su activaci\u00f3n casi inmediata ante cierres inesperados; sin consumir casi recursos de la m\u00e1quina host.<\/p>\n<p>En <a href=\"http:\/\/itsoftware.com.co\" target=\"_blank\" rel=\"noopener noreferrer\">ITSoftware SAS<\/a> les apoyamos en la automatizaci\u00f3n de procesos de software, donde aplicaciones como \u00e9stas hacen parte de una soluci\u00f3n integral bajo diferentes sistemas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Muchas veces se requiere que una aplicaci\u00f3n siempre se est\u00e9 ejecutando en un equipo, como parte de una actividad de monitoreo o algo similar. Pero puede ocurrir que la aplicaci\u00f3n[&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":8714,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[305,304],"tags":[307,310,311,312,572,158,313],"class_list":["post-333","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatizacion","category-windows","tag-automatizacion","tag-batchs","tag-ejecucion-periodica","tag-procesos-windows","tag-programa","tag-programacion-2","tag-wmic"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/itsoftware.com.co\/content\/wp-content\/uploads\/2015\/06\/procesos-windows-300x218-1.jpeg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts\/333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/comments?post=333"}],"version-history":[{"count":0,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts\/333\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/media\/8714"}],"wp:attachment":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/media?parent=333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/categories?post=333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/tags?post=333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}