🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
8 messages
8 total messages Started by pacolinx Sun, 11 Sep 2005 14:23
Comprobar que un proceso esta en ejecución (pid)
#1639
Author: pacolinx
Date: Sun, 11 Sep 2005 14:23
15 lines
1722 bytes
Hola
Me gustaria saber como poder hacer un script que compruebe si una
aplicacion esta en marcha y sino esta que la lance.
He pensado en la gestion del pid pero no se como hacerlo.
Gracias
-- 
     |||
    (o o)
     (_)
--oOOo-oOOo----------------------------------------------
Pacolinux. http://pagina.de/pacodebian Valencia (Spain) 
Linux Debian Reg. User #1000434411 (http://counter.li.org)
--oOOo-oOOo----------------------------------------------
La cita de hoy: 
A�o nuevo, vida nueva. 
Re: Comprobar que un proceso esta en ejecución (pid)
#1640
Author: Gonzalo Pérez de Olaguer Córdoba
Date: Sun, 11 Sep 2005 15:13
28 lines
2354 bytes
Hola pacolinx <contestaralgrupo@microsoft.com>
el Sun, 11 Sep 2005 16:23:28 +0200 escribiste:

> Me gustaria saber como poder hacer un script que compruebe si una
> aplicacion esta en marcha y sino esta que la lance.
> He pensado en la gestion del pid pero no se como hacerlo.

Lo más habitual es hacer que la aplicación, al arrancar, genere el
fichero /var/run/NOMBRE.pid, conteniendo su PID, y lo borre al
finalizar. Esto sólo vale para el caso en que sólo deba estar en
ejecución una instancia de la aplicación.

En este caso la aplicación debe comprobar, al arrancar, que no
exista ya una instancia en ejecución.

Además, se suele verificar que el PID indicado en el fichero sea
válido, caso de que la aplicación haya finalizado inesperadamente
sin borrar el fichero.

Si la aplicación no hace eso y no puedes/quieres modificarla puedes
hacer un "wrapper" que gestione el ficherillo en cuestión.

Alternativamente puedes usar ps(1) para localizar la aplicación
por su nombre, entre los programas que se están ejecutando.

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Re: Comprobar que un proceso esta en ejecución (pid)
#1641
Author: pacolinx
Date: Sun, 11 Sep 2005 17:02
28 lines
2389 bytes
Gonzalo P�rez de Olaguer C�rdoba el  Domingo, 11 de Septiembre de 2005 17:13
dijo as� :

>> Me gustaria saber como poder hacer un script que compruebe si una
>> aplicacion esta en marcha y sino esta que la lance.
>> He pensado en la gestion del pid pero no se como hacerlo.
> 
> Lo m�s habitual es hacer que la aplicaci�n, al arrancar, genere el
> fichero /var/run/NOMBRE.pid, conteniendo su PID, y lo borre al
> finalizar. Esto s�lo vale para el caso en que s�lo deba estar en
> ejecuci�n una instancia de la aplicaci�n.
Algien tiene un ejemplo simple?
Me gustaria ver alguno hecho.
La idea es aplicarlo a un tuner invertido son ssh, q debe
esta siempre en marcha.

Gracias
-- 
     |||
    (o o)
     (_)
--oOOo-oOOo----------------------------------------------
Pacolinux. http://pagina.de/pacodebian Valencia (Spain) 
Linux Debian Reg. User #1000434411 (http://counter.li.org)
--oOOo-oOOo----------------------------------------------
La cita de hoy: 
Soledad: Un instante de plenitud.
                -- Michel de Montaigne. (1553-1592) Fil�sofo franc�s. 
Re: Comprobar que un proceso esta en ejecución (pid)
#1642
Author: Gonzalo Pérez de Olaguer Córdoba
Date: Sun, 11 Sep 2005 17:42
53 lines
2599 bytes
Hola pacolinx <contestaralgrupo@microsoft.com>
el Sun, 11 Sep 2005 19:02:46 +0200 escribiste:

> >> Me gustaria saber como poder hacer un script que compruebe si una
> >> aplicacion esta en marcha y sino esta que la lance.
> >> He pensado en la gestion del pid pero no se como hacerlo.
> > 
> > Lo más habitual es hacer que la aplicación, al arrancar, genere el
> > fichero /var/run/NOMBRE.pid, conteniendo su PID, y lo borre al
> > finalizar. Esto sólo vale para el caso en que sólo deba estar en
> > ejecución una instancia de la aplicación.
> Algien tiene un ejemplo simple?
> Me gustaria ver alguno hecho.

esto sólo vale como idea:

#!/bin/sh

RUNFILE=/var/run/test.pid

if [ -e "$RUNFILE" ]; then
	echo "$0: ya estoy corriendo"
	exit 1
fi

trap "rm -f $RUNFILE" EXIT

echo "$$" > $RUNFILE

echo "$0: mátame para terminar"

while (`true`); do
	sleep 5
	echo -n '.'
done

exit 0

lo puedes matar ejecutando:

kill `cat /var/run/test.pid`

> La idea es aplicarlo a un tuner invertido son ssh, q debe
> esta siempre en marcha.

pues yo casi que lo metería en inittab(5) y dejaría que
init(8) se encargue de mantenerlo en funcionamiento

mira la 'action' respawn

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Re: Comprobar que un proceso esta en ejecución (pid)
#1644
Author: pacolinx
Date: Sun, 11 Sep 2005 20:16
25 lines
2086 bytes
Gonzalo P�rez de Olaguer C�rdoba el  Domingo, 11 de Septiembre de 2005 19:42
dijo as� :

>> La idea es aplicarlo a un tuner invertido son ssh, q debe
>> esta siempre en marcha.
> 
> pues yo casi que lo meter�a en inittab(5) y dejar�a que
> init(8) se encargue de mantenerlo en funcionamiento
> 
> mira la 'action' respawn

Gracias lo he probado y va de cine
Yo tenia pensado lanzar un script cada x minutos que si existe el fichero
pid, no haga nada y sino lo lance de nuevo pq ha caido.

-- 
     |||
    (o o)
     (_)
--oOOo-oOOo----------------------------------------------
Pacolinux. http://pagina.de/pacodebian Valencia (Spain) 
Linux Debian Reg. User #1000434411 (http://counter.li.org)
--oOOo-oOOo----------------------------------------------
La cita de hoy: 
A�o de brevas, nunca lo veas. 
Re: Comprobar que un proceso esta en ejecución (pid)
#1646
Author: JFL
Date: Mon, 12 Sep 2005 06:53
15 lines
1651 bytes
pacolinx escribi�:
> Hola
> Me gustaria saber como poder hacer un script que compruebe si una
> aplicacion esta en marcha y sino esta que la lance.
> He pensado en la gestion del pid pero no se como hacerlo.
> Gracias

otro si no es de esos programas que dejan el pid. Lo puedes poner en el 
cron para levantar cualquier demonio caido:

   PID=`ps -uxcaw | grep 'named' | awk '{ print $2 }'`

   if [ "$PID" == "" ]; then
    /usr/sbin/named
   fi
Re: Comprobar que un proceso esta en ejecución (pid)
#1651
Author: Benjamín Albiñana
Date: Mon, 12 Sep 2005 15:26
22 lines
1775 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

  Cuando: Mon, 12 Sep 2005 06:53:59 GMT
  Quien: JFL <nonono@kkk.com>
  Que: Re: Comprobar que un proceso  esta en ejecuci�n (pid)

>    PID=`ps -uxcaw | grep 'named' | awk '{ print $2 }'`

  �y todo eso no se podr�a sustituir con un pgrep?

  PID=$(pgrep 'named')

- -- 
Los dioses que sonrieron cuando naciste, ahora se est�n descojonando...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFDJZ41633hg168lHwRAuaXAKCWh6CEOQmErNXZoD1WtliOPVuLRgCgl9BW
1NVToQ7PO3jJFLbRmOgZmbs=
=i676
-----END PGP SIGNATURE-----
Re: Comprobar que un proceso esta en ejecución (pid)
#1655
Author: JFL
Date: Mon, 12 Sep 2005 17:31
16 lines
1816 bytes
Benjam�n Albi�ana escribi�:
>   Cuando: Mon, 12 Sep 2005 06:53:59 GMT
>   Quien: JFL <nonono@kkk.com>
>   Que: Re: Comprobar que un proceso  esta en ejecuci�n (pid)
> 
> 
>>>   PID=`ps -uxcaw | grep 'named' | awk '{ print $2 }'`
> 
> 
>   �y todo eso no se podr�a sustituir con un pgrep?
> 
>   PID=$(pgrep 'named')
> 

sip, pero no es tan estandar. Yo por ejemplo no lo tengo en el freebsd, 
que no lo han incluido hasta el 5.4 (creo).
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads