UTNianos

Versión completa: [Sistemas Operativos] Ejecutar funcion en background
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola que tal estoy haciendo el tp de SO pero me trabe en una parte. El shell tiene que ejecutar otro shell (vendria a ser un subshell) periodicamente cada n segundos pero debe permanecer leyendo comandos.
O sea la persona que ingresa comandos no tiene que percebir la ejecucion de la funcion, solo tiene que ingresar comandos. Este subshell se deberia ejecutar en segundo plano para no "interferir" en el uso del shell.
Estoy probando usando el comando sleep n seguido del & que supuestamente lo hace correr en segundo plano. El problema es que lo hace una sola vez. El codigo seria algo como este:

#!/bin/bash

Periodico()
{
sleep 10
echo "hola" #Aca deberia ir el subshell que quiero ejecutar cada 10 segundos"
}

Periodico &

Aca iria el codigo del nucleo.
Averiguá un poco más sobre el comando chsh, una posible solución viene por ese lado =)

Saludos!
Leandro.
Gracias Leandro por la pronta respuesta!. Estuve leyendo del comando chsh pero no se me ocurrio como aplicarlo para solucionar mi problema :( .
Hola

Si necesitas desde una consola ejecutar un .sh y luego poder seguir utilizando la consola y el .sh quede ejecutandose en backgroud... una solucion es la siguiente


promt > nohup archivo.sh &



con eso independizas la ejecucion del .sh y vas a ver q te crea un nohup.out... q es el achivo de salida de cualquier print o echo del .sh...

Seguro q hay formas mas eficientes de hacerlo, pero eso en mi caso me ayudo a crear un demonio q se ejecuta en background en el laburo...


Saludos!!
URLs de referencia