# ayudita. script para remoto

## pelelademadera

bueno, es asi, tengo una kozumi que uso con tvtime en mi "server/media-pc"

la cuestion es que modifique (<sorce>/drivers/media/IR/ir-keymaps.c) para que coincida con mi control remoto y bueno, ahora lo que necesitaria es un script que haga lo siguiente.

cuando lo llamo, que abra tvtime, hasta ahi esta barbaro, pero lo que necesito es que si tvtime esta abierto, lo cierre...

no se si es complicado, estimo que no, pero no se como hacerlo.

esto lo quiero para asignarlo con xmodmap al script.

gracias de antemano, y espero que se pueda.

----------

## i92guboj

Hay varias formas de hacerlo. Si eres el único usuario de la máquina, una posibilidad es usar la salida de ps.

```
if ps -A | grep chrom > /dev/null; then echo chrome is running; else echo chrome isn\'t running; fi
```

Otra posibilidad sería el uso de un fichero candado o algo similar. Por ejemplo, si tu script es algo como esto

```
#!/bin/bash

foo bar

...

tv-time

...

moo 

cow

```

Convertirlo en algo como esto:

```
#!/bin/bash

LOCK_FILE="/dev/shm/.$USER.tv-time.lock"

if [[ -f "$LOCK_FILE" ]]; then

  echo "Candado encontrado en $LOCK_FILE"

  echo "Si está seguro de que $0 no está siendo ejecutado en"

  echo "otro shell, elimine dicho archivo y ejecute $0 de nuevo."

  exit -1

fi

touch "$LOCK_FILE"

# Aquí continua como antes

foo bar

...

tv-time

...

moo 

cow

# Y eliminamos el candado al salir

rm -f "$LOCK_FILE"

```

No probado, es solo para ilustrar la idea general.

----------

## pelelademadera

antes que nada gracias.

estube ahi probando y llegue a esto:

 *Quote:*   

> #!/bin/bash
> 
> if [ "ps -A | grep tvtime" = /dev/null ] ; then
> 
>         tvtime
> ...

 

pero siempre me hace el kill y no el tvtime. soy muy manco para la programacion

----------

## i92guboj

Usa una de estas dos:

```
if ps -A | grep tvtime > /dev/null; then
```

```
if [[ -n $(ps -A | grep tvtime ) ]]; then
```

----------

## pelelademadera

pasa algo similar

no detecta que esta abierto tvtime e intenta abrirlo siempre

----------

## i92guboj

 *pelelademadera wrote:*   

> pasa algo similar
> 
> no detecta que esta abierto tvtime e intenta abrirlo siempre

 

Mira en la salida de ps -A y asegúrate de que el nombre del proceso contiene esa cadena. "ps -A | grep tvtime" tiene que reportar algo, si no hay salida entonces la comprobación fallará.

----------

## pelelademadera

gracias capo. no me funciono de esta manera, pero asi logre que funcione.

no lo entiendo demasiado al porque, pero anda bien

 *Quote:*   

> #!/bin/bash
> 
> ps -A | grep tvtime
> 
> if [ $? != 0 ]; then
> ...

 

----------

