SoloCodigo

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: lair en Viernes 22 de Mayo de 2009, 20:06

Título: cancelar salida de service network
Publicado por: lair en Viernes 22 de Mayo de 2009, 20:06
holaa todos:

tengo un pequeño programita en c que lo unico que hace es cambiarme la ip, el codigo es el siguiente:

Código: C
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. int main(int argc, char *argv[]){
  5.  
  6.         if(strcmp(argv[1],"s")==0){
  7.                 printf("Conectando con el servidor...n");
  8.                 system("su -c 'cat seth0 > /etc/sysconfig/network-scripts/ifcfg-eth0'");
  9.                 system("su -c 'service network restart'");
  10.         }
  11.         if(strcmp(argv[1],"i")==0){
  12.                 printf("Conectando a internet...n");
  13.                 system("su -c 'cat ieth0 > /etc/sysconfig/network-scripts/ifcfg-eth0'");
  14.                 system("su -c 'service network restart'");
  15.         }
  16.         return 0;
  17. }
  18.  
la cuestion aqui es como dice el titulo del post, como le hago para que service network restart no me reporte la salida,

pasar de esto:
Código: Text
  1. Conectando a internet...
  2. Interrupción de la interfaz eth0:                          [  OK  ]
  3. Interrupción de la interfaz wlan0:                         [  OK  ]
  4. Interrupción de la interfaz de loopback:                   [  OK  ]
  5. Activación de la interfaz de loopback:                     [  OK  ]
  6. Activando interfaz eth0:                                   [  OK  ]
  7. Activando interfaz wlan0:                                  [  OK  ]
  8. [Lair@localhost .scripts]$
  9.  
a esto:
Código: Text
  1. Conectando a internet...
  2. [Lair@localhost .scripts]$
  3.  

gracias a todos.
Título: Re: cancelar salida de service network
Publicado por: su - en Viernes 22 de Mayo de 2009, 22:02
Cierra el STDOUT antes de ejecutar los comandos y abrelo nuebamente despues de ejecutar:
Código: C
  1. fclose(stdout);
  2. system( "..." );
  3. stdout = fopen ( "standard-output-file", "w" );
  4. printf( "Hechon" );
  5.  
  6.  
Título: Re: cancelar salida de service network
Publicado por: lair en Viernes 22 de Mayo de 2009, 23:34
Hola su - :

gracias por contestar tan pronto, solo que despues de compilarlo y ejecutarlo nuevamente, me arroja el siguiente error

Código: Text
  1. [Lair@localhost .scripts]$ conexion i
  2. Conectando a internet...
  3. /etc/init.d/functions: line 497: echo: write error: Descriptor de fichero erróneo
  4. /etc/init.d/functions: line 497: echo: write error: Descriptor de fichero erróneo
  5. /etc/init.d/functions: line 413: echo: write error: Descriptor de fichero erróneo
  6. .
  7. .
  8. .
  9.  
NOTA: conexion es un alias.

gracias por la ayuda
Título: Re: cancelar salida de service network
Publicado por: su - en Sábado 23 de Mayo de 2009, 17:40
Hmm... en tonces te toca redirrecionar la salida de los comandos a /dev/null y no cerrar STDOUT.
Lo haces  de esta forma:
Código: Bash
  1. comando > /dev/null
  2.  
Y si no quieres ver ni los errores:
Código: Bash
  1. comando > /dev/null 2>&1
  2.  

PD: Cerrar el STDOUT no sirve, justamente ese es el error, echo no encuentra donde imprimir.
Título: Re: cancelar salida de service network
Publicado por: lair en Lunes 25 de Mayo de 2009, 17:48
gracias su - funciona a la perfeccion  :good: