Linux en Espanol
 
Control de bucle mediante PID de proceso (tema #25036)
Publicar nuevo tema  Responder al tema    Foros de discusión -> Programación
Autor Mensaje
epicteto
Forista
Registrado: 2014-02-23
Mensajes: 29

Publicado: 2014-08-19 10:39:36    Asunto: Control de bucle mediante PID de proceso

Hola

Supongamos que conocemos el PID de un proceso y queremos controlar un bucle seg?n ese proceso est? o no en marcha, pero mediante el PID, NO por el nombre del proceso. Ser?a con algo as? como:

while true
do
echo "El proceso est? en marcha"
done

?C?mo controlo este bucle seg?n exista o no el PID del proceso? ?con ps? ?como?

Gracias
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2014-08-19 12:06:33    Asunto:

Hola.

P?sale a ps el PID que quieras comprobar.
[code:1:23411baebd]ps PID[/code:1:23411baebd]
Por ejemplo, voy a comprobar en mi m?quina los procesos 1549 (que existe) y 332211 (que no existe):
[code:1:23411baebd][yo@maquina ~]$ ps 1549
PID TTY STAT TIME COMMAND
1549 hvc0 Ss+ 0:00 /sbin/getty hvc0 9600 linux
[yo@maquina ~]$ ps 332211
PID TTY STAT TIME COMMAND
[/code:1:23411baebd]
Saludos.
epicteto
Forista
Registrado: 2014-02-23
Mensajes: 29

Publicado: 2014-08-19 12:58:39    Asunto:

miguelgf, gracias por tu respuesta... pero mi duda est? en como incorporar esa comprobaci?n de PID en el bucle:

while true
do
echo "El proceso est? en marcha"
done

para que se ejecute el comando echo cuando efectivamente el proceso exista
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2014-08-21 06:45:25    Asunto:

Hola.

?Es algo como esto lo que buscas?
[code:1:0b749225fc]#!/bin/bash
BUSCAR=$1
EXISTE=$(ps --no-headers $BUSCAR)

while [ -n "$EXISTE" ];do
echo Espero 5 segundos ...
sleep 5
EXISTE=$(ps --no-headers $BUSCAR)
done[/code:1:0b749225fc]
Saludos.
epicteto
Forista
Registrado: 2014-02-23
Mensajes: 29

Publicado: 2014-08-23 13:56:13    Asunto:

Pues era justo eso lo que buscaba

Gracias !!!





La marca registrada Linux (R) se usa siguiendo la sublicensia obtenida del "Linux Mark Institute",
el LICENCIATARIO exclusivo de Linus Torvalds, propietario de la marca en EEUU y otros países
The registered trademark Linux (R) is used pursuant to a sublicense from the Linux Mark Institute,
the exclusive LICENSEE of Linus Torvalds, owner of the mark in the U.S. and other countries