Linux - Ayuda con script

 
Vista:

Ayuda con script

Publicado por David (3 intervenciones) el 28/08/2006 19:30:02
Hola quiero hacer un script para comprobar si un proceso se está ejecutando. Si no es así, que se lance. Lo que tengo hecho es esto:

#!/bin/sh

resultado='ps aux|grep faxgetty|grep -v grep';

if [[$(resultado)=""]] then
faxgetty -D ttyS0 //lanzar el proceso
fi

¿Esta solucion podría valer o tengo algo mal hecho?
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con script

Publicado por n0str0m0 (1503 intervenciones) el 28/08/2006 23:13:51
Hola David,

Tenías unas cuantas cosas mal, de hecho ni siquiera se ejecutaba, tenía errores de sintxasis.

Las comillas para ejecutar el comando y devolver el valor en resultado son comillas inversas (o como se llamen). Luego, para coger el valor de la variable, utiliza solo $, no $ y paréntesis pues entonces intentará ejecutar el comando resultado (que no viene en bash, evidentemente ;) )

Otra cosa: como norma general, en las estructuras de control en bash, o separas con " ; "
o pones la palabra clave en la otra línea, es decir, pon el then en la siguiente o separado por el ; (lo mismo se aplica para los for... do ... done y demás)

Y por último, el // como comentario pues tampoco sirve... vamos, que igual no tenías un linux delante en el momento en que te surgió la duda, pero era muuuuuuy difícil que esto funcionara :P

Esta versión debería funcionar:

#!/bin/sh

resultado=`ps aux|grep faxgetty|grep -v grep`
if [[ $resultado = "" ]]; then
faxgetty -D ttyS0
fi


Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con script

Publicado por David (3 intervenciones) el 30/08/2006 14:03:40
ok, el script ya funciona, pero al ponerlo en el crontab para que se ejecute cada hora, me deja un mensaje en /var/log/messages diciendo que "cannot execute /usr/sbin/faxgetty" y es que ese proceso no se encuentra en esa ruta. Si yo lo ejecuto desde la consola si que se lanza pero al ponerlo en el crontab no. ¿Como lo puedo solucionar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con script

Publicado por n0str0m0 (1503 intervenciones) el 31/08/2006 10:16:48
Tiene pinta de ser un problema de permisos. Comprueba que el ejecutable no tenga sólo permisos para root.

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con script

Publicado por David (3 intervenciones) el 05/09/2006 18:17:08
para que otros usuarios debe de tener permisos?como lo cambio?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con script

Publicado por n0str0m0 (1503 intervenciones) el 05/09/2006 18:54:37
No estoy seguro, es sólo una posibilidad. Lo que pasa es que normalmente los demonios tienen un usuario asociado que funciona como un usuario normal y este debe tener los permisos necesarios para ejecutar aquello que necesitas.

Pero es sólo una hipótesis :)

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con script

Publicado por idd00fdu (8 intervenciones) el 21/09/2006 13:10:45
Si te funciona desde consola, ejecuta:

# type faxgetty

Eso te dará la ruta real del comando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar