Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Sistemas Operativos] - Asignacion en 2 plano
Autor Mensaje
xtremenaza Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 55
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: May 2008
Mensaje: #1
[Sistemas Operativos] - Asignacion en 2 plano Trabajo practico Sistemas Operativos
Tenemos un problema, te lo detallo con un ejemplo, tengo un script padre y un script hijo, y el script padre exporta una variable y llama al otro script pero lo llama en segundo plano, con & en el final de la sentencia, cuestion que este 2° script modifica el contenido de la variable de entorno del script padre, pero el script padre NO ve ese cambio, PERO si el script padre llama al otro script y NO lo manda a 2° plano la asignacion de la variable funciona perfecto, el problema es que NECESITO que el 2° script se ejecute en 2° plano y que este pueda modificar la/s variable/s de entorno del padre, aca te paso un ejemplo muy simple de la situacion:

programa1.sh

#!/bin/bash
export Nombre
. /root/programa2.sh &
echo "$Nombre"


--------------------------

programa2.sh

#!/bin/bash
Nombre="Pepe"


-------------------------


Si probas eso asi como esta vas a ver que lo que asigna programa 2 a la variable Nombre, no se ve desde programa 1, PERO si le sacas el & y llamas en 1 plano si anda, y si se ve lo que asigna el programa 2.

Bueno, ojala me puedas ayudar con esto porque es vital para el tp, Gracias Ari!! nos vemos!!!

Nazareno
03-05-2008 13:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
DamioX Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas


Mensajes: 17
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Apr 2008
Mensaje: #2
Re: [Sistemas Operativos] - Asignacion en 2 plano
eso es porque con & el bash crea un nuevo proceso.
Las variables de entorno son locales al proceso, por eso cuando las seteas en el bash y luego cerras la consola, esa config se pierde, a menos que la pongas en un .bash_profile o algo similar a eso (script q se ejecuta cada vez q se levanta la consola).

Al margen, lo q haría si fuese vos sería retornar algun codigo desde el 2do script, o comunicarlos con un pipe.


--BEGIN GEEK CODE BLOCK--
GIT/S/>M d- s+++:- a-- C+++$ U-->+ P+>++ L+ E-- W+ N-- o-- K? w++
!O M- V-- PS PE Y--- PGP t--- 5-- X+ R- tv- b++ DI-- D+++
G e h r y+**
--END GEEK CODE BLOCK--
26-05-2008 22:46
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
apuleyo Sin conexión
Empleado de Fotocopiadora
Call me engineer
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 49
Agradecimientos dados: 28
Agradecimientos: 64 en 16 posts
Registro en: Apr 2008
Mensaje: #3
Re: [Sistemas Operativos] - Asignacion en 2 plano
Los procesos en background no pueden modificar variables de entorno, eso es asi y no le des mas vueltas. Tal vez la solucion vendria usando señales, es decir que el proceso en background sea una especie de daemon que avise al script padre que debe hacer algo. Fijate en google.com/linux temas como "signals Bash" y "capture signals".
Espero que te ayude.
30-05-2008 16:48
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.