Te recomendamos que revises esta respuesta en un entorno controlado antes de enviarlo a producción, saludos.
Solución:
No pierdes el control sobre ellos. Los está enviando (aparte del último) al fondo.
Si ejecuta la cadena de comandos que especifica, la invocación ./script.sh 4
estará en primer plano y los demás scripts se ejecutarán en segundo plano. La entrada se enviará al script de primer plano. Para suspender el guión de primer plano, presione ControlZ. Para enviar el script suspendido a un segundo plano para continuar ejecutándose, use el bg
dominio.
Para ver los scripts (o más correctamente, los trabajos) que tiene y los estados en los que se encuentran, use jobs
.
Para resaltar un trabajo específico, utilice fg
y su número (según lo informado por el mencionado jobs
) con un %
prefixp.ej fg %2
. Para finalizar un trabajo específico, puede traerlo al primer plano con fg
y termínalo con cordura, o puedes kill
eso, por ejemplo kill -TERM %2
.
Después de probar diferentes métodos y programas, descubrí que la solución pragmática es GNU Parallel. Publico esta respuesta ya que puede ayudar a otros.
GNU Parallel
no ha sido construido para esta tarea, pero cumple perfectamente el propósito.
Si ejecuta los scripts como
parallel -u ::: './script.sh 1' './script.sh 2' #(and so forth)
Todos los scripts se ejecutarán en paralelo.
los -u
(--ungroup
) envía las salidas del script a stdout
mientras se ejecutan los scripts.
Control+C mata al parallel
trabajo y, posteriormente, todos los scripts en ejecución.
Puedes usar tmux
para esto.
Es un multiplexor de terminal, lo que significa que divide una pestaña en varias ventanas.
- Comience con el comando
tmux
. - Usar
Contr
+B seguido de"
o%
para dividir un panel en dos paneles. - Iniciar procesos en primer plano.
- Cambiar entre los procesos uding
Contr
+B
seguido de flecha keys.
Ahora tiene control normal sobre múltiples procesos en una pestaña de su terminal.
Si desea enfocar (o desenfocar) un panel específico, use Contr
+B
seguido por Z
.
Si necesita desplazarse utilice Contr
+B
seguido por Q
y desplazarse usando la flecha keys(o activa el modo ratón).
Puedes encontrar una hoja de trucos aquí.
También es posible automatizar ese proceso.
Si te sientes incitado, puedes dejar un post acerca de qué le añadirías a este enunciado.