{"id":2859,"date":"2016-10-12T08:00:01","date_gmt":"2016-10-12T13:00:01","guid":{"rendered":"http:\/\/itsoftware.com.co\/content\/?p=2859"},"modified":"2019-05-18T12:36:01","modified_gmt":"2019-05-18T17:36:01","slug":"monitorear-proceso-linux-arrancarlo-no-esta-corriendo","status":"publish","type":"post","link":"https:\/\/itsoftware.com.co\/content\/monitorear-proceso-linux-arrancarlo-no-esta-corriendo\/","title":{"rendered":"Monitorear un proceso en Linux y arrancarlo si no est\u00e1 corriendo"},"content":{"rendered":"<div>\n<div>Cuando estamos trabajando en Linux, puede ocurrir que tenemos un proceso vital que siempre debe estar corriendo en background como servicio, por lo que se hace necesario monitorear su actividad para que siempre est\u00e9 ejecut\u00e1ndose.<\/div>\n<div><\/div>\n<div>\n<figure style=\"width: 544px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"\" src=\"http:\/\/farm8.staticflickr.com\/7036\/6809247908_fea9ac468e_z.jpg\" alt=\"Procesos Linux\" width=\"544\" height=\"316\" \/><figcaption class=\"wp-caption-text\">Procesos Linux<\/figcaption><\/figure>\n<\/div>\n<div><\/div>\n<div>El proceso puede llegar a detenerse por alg\u00fan error de la aplicaci\u00f3n o la decisi\u00f3n de alg\u00fan usuario con privilegios.<\/div>\n<\/div>\n<p><!--more--><\/p>\n<div>\n<div>En este ejemplo se\u00a0busca monitorear un proceso en php, que si no est\u00e1 corriendo se\u00a0a pone a correr de nuevo:<\/div>\n<\/div>\n<div>\n<div>\n<div><\/div>\n<div>Primero creamos el script de monitoreo \u00a0<i>\/var\/www\/sc\/chatserver.sh :<\/i><\/div>\n<div><\/div>\n<\/div>\n<div><i>#!\/bin\/bash<\/i><\/div>\n<div><i>\u00a0<\/i><\/div>\n<div><i>service=\u00bbchatserver.php\u00bb<\/i><\/div>\n<div><i>\u00a0<\/i><\/div>\n<div><i>run=$(ps -ef | grep -v grep | grep \u00ab$service\u00bb | wc -l)<\/i><\/div>\n<div><i>\u00a0<\/i><\/div>\n<div><i>if (( $run &gt; 0 ))<\/i><\/div>\n<div><i>then<\/i><\/div>\n<div><i>\u00a0\u00a0\u00a0\u00a0\u00a0exit<\/i><\/div>\n<div><i>else<\/i><\/div>\n<div><i>\u00a0\u00a0\u00a0\u00a0\u00a0php \/var\/www\/wss2\/chatserver.php &amp;<\/i><\/div>\n<div><i>fi<\/i><\/div>\n<div><\/div>\n<p>Es de destacar que service es una variable con la que estamos reconociendo el servicio o proceso que queremos que siempre est\u00e9 activo.<\/p>\n<\/div>\n<div><\/div>\n<div>La l\u00ednea\u00a0<i>php \/var\/www\/wss2\/chatserver.php &amp;, <\/i>es un ejemplo de script PHP que se est\u00e1 corriendo desde comando CLI. Este es el proceso que siempre queremos que est\u00e9 activo, y se corra en el evento en que la variable run sea 0.<\/div>\n<div><\/div>\n<div>\n<div>En este ejemplo vamos a monitorear cada 2 minutos si el proceso chatserver.php est\u00e1 corriendo, y si no lo est\u00e1, volverlo a arrancar:<\/div>\n<div><\/div>\n<div># crontab -l<\/div>\n<\/div>\n<div><i>\u00a0\u00a0\u00a0\u00a0\u00a0*\/2 * * * * \/var\/www\/sc\/chatserver.sh<\/i><\/div>\n<div><\/div>\n<div>Este art\u00edculo hace parte del servicio de divulgaci\u00f3n de conocimiento de <a href=\"http:\/\/itsoftware.com.co\">ITSoftware SAS<\/a>.<\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Cuando estamos trabajando en Linux, puede ocurrir que tenemos un proceso vital que siempre debe estar corriendo en background como servicio, por lo que se hace necesario monitorear su actividad[&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[305,6],"tags":[916,918,917,914,915],"class_list":["post-2859","post","type-post","status-publish","format-standard","hentry","category-automatizacion","category-programacion","tag-monitoreo-php","tag-monitoreo-script","tag-monitoreo-shell","tag-script-linux","tag-script-php"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts\/2859","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=2859"}],"version-history":[{"count":0,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/posts\/2859\/revisions"}],"wp:attachment":[{"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/media?parent=2859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/categories?post=2859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itsoftware.com.co\/content\/wp-json\/wp\/v2\/tags?post=2859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}