ver segundo script programas procesos plano ejemplos ejecutar ejecuciones comandos linux scripting sh

linux - programas - Cómo ejecutar un script de shell en segundo plano y no obtener resultados



ver ejecuciones en segundo plano linux (5)

Escribí dos guiones de shell a.sh y b.sh. En a.sh y b.sh tengo un infinito for loop e imprimen algunos resultados en el terminal. Quiero escribir otra secuencia de comandos que invoque tanto a.sh como b.sh, pero quiero que el usuario recupere el control de la terminal de inmediato, en lugar de tener la secuencia de comandos ejecutándose infinitamente y quiero ocultar la salida en la terminal.



Redirigir la salida a un archivo como este:

./a.sh > somefile 2>&1 &

Esto redireccionará stdout y stderr al mismo archivo. Si desea redirigir stdout y stderr a dos archivos diferentes, use esto:

./a.sh > stdoutfile 2> stderrfile &

Puede usar /dev/null como uno o ambos archivos si no le importan los stdout y / o stderr.

Consulte la página de personal de bash para obtener detalles sobre las redirecciones.


Si están en el mismo directorio que tu script que contiene:

./a.sh > /dev/null 2>&1 & ./b.sh > /dev/null 2>&1 &

El & al final es lo que hace que su script se ejecute en segundo plano.

La parte > /dev/null 2>&1 no es necesaria: redirige las secuencias stdout y stderr para que no tenga que verlas en la terminal, lo que puede hacer para scripts ruidosos con muchos resultados.


Use nohup si su trabajo de fondo tarda mucho tiempo en terminar o simplemente usa SecureCRT o algo así como iniciar sesión en el servidor.

Redireccione stdout y stderr a /dev/null para ignorar la salida.

nohup /path/to/your/script.sh > /dev/null 2>&1 &


nohup sh -x runShellScripts.sh &