¿Hay alguna herramienta / comando en Linux que pueda usar para ejecutar un comando en más de una pestaña simultáneamente? Quiero ejecutar el mismo comando: ./myprog argument1 argument2
simultáneamente en más de un shell para verificar si los mutexes funcionan bien en un programa enhebrado. Quiero poder aumentar el número de instancias de este programa para poner mi código bajo tensión más adelante.
Estoy buscando algo como lo que hace la pared. Puedo pensar en usar tty's, pero eso parece mucho dolor si tengo que escalar esto a muchos más proyectiles.
shell
terminal
parallelism
Arpith
fuente
fuente
myprog
instancias secundarias y agregue su salida para usted.Respuestas:
Como mavillan ya sugirió, solo use terminador . Permite visualizar muchos terminales de forma en mosaico. Al habilitar la función de transmisión, puede ingresar el mismo comando simultáneamente en cada terminal.
Aquí hay un ejemplo con el comando de fecha transmitido a una cuadrícula de 32 terminales.
fuente
tmux tiene esta capacidad. (junto con muchas otras capacidades útiles en la misma línea)
Se puede hacer a través de:
fuente
Multixterm
Otra herramienta para agregar a la lista es una llamada
multixterm
. Utilizaxterm
terminales. Puedes invocarlo así:Y una vez arriba, se te presentará una GUI.
Luego puede comenzar a girar
xterm
ventanas haciendo clic en elnew xterm
botón. Aquí, por ejemplo, he invocado 2. Si luego haces clic en la ventana principal, puedes comenzar a escribir comandos en ambas ventanas simultáneamente:teclado
Parece que solo está disponible en Ubuntu, se parece a multixterm.
extracto
fuente
Se puede lograr usando iTerm2
Referencia: http://korishev.com/blog/2014/02/28/iterm2-broadcast-input/
fuente
Puedes hacer algo como:
O si el resultado de cada comando es relevante durante la ejecución, puede configurar la pantalla.
La pantalla requiere más trabajo manual.
fuente
tail -f
el archivo de registro en lugar de configurar un centenar de pantallas?tail -f *.log
Soy un usuario de KDE, con konsole 2.13.2 en KDE 4.13.3 puedes hacer esto:
abrir konsole
vista dividida verticalmente
escribir simultáneamente en cada terminal dentro de la ventana
fuente
Prueba Terminator (terminal del emulador). Puede tener muchas sesiones de shell en la misma ventana y puede transmitir un comando a todas ellas.
Terminator
fuente
Puede utilizar una herramienta como MobaXterm y le permitirá conectarse simultáneamente y luego pegar sus comandos en todas sus ventanas.
fuente
Si solo desea ver la salida de la ejecución número 100 del programa:
fuente
Puedes controlar a
konsole
travésDCOP
. Un ejemplo es de aquí :fuente
Estoy de acuerdo con el comentario que hace @msw arriba. Esto le escribirá un script que se iniciará mediante un
sh
proceso en segundo plano e imprimirá elsh
pid del proceso secundario para que pueda monitorearlo y sus elementos secundarios mientras funciona.fuente
@ Jinpeng estaba en el camino correcto con GNU Parallel , pero no con la implementación.
Ejemplo: ejecute 10 instancias paralelas de su programa, con cada subproceso ejecutando su programa solo una vez:
Ejemplo: ejecute 10 subprocesos paralelos, con cada uno de esos subprocesos ejecutando su programa infinitamente:
Puede escalar esto fácilmente a los cientos de hilos reemplazando el
10
en mis ejemplos.Si su programa produce mensajes estándar y desea verlos a medida que se producen (en lugar del valor predeterminado que los clasifica), la
--ungroup
opción de paralelo puede ser útil.Si está ejecutando muchos subprocesos desde su estación de trabajo y no desea que las cosas no respondan, considere
nice
el subárbol de proceso completo en el momento del lanzamiento.Nota aparte, paralelo GNU normalmente no se instala de forma predeterminada, pero es por lo general en sus repositorios de paquetes normales, por lo que sólo tiene que instalar como cualquier otro paquete:
dnf install parallel
,apt-get install parallel
,brew install parallel
, etc.fuente
Puede iniciar procesos en segundo plano con
nohup
.Ejemplo:
Salida:
Recuerde matar la tarea más tarde con lo dado
PID
:Para poner el proceso en primer plano, debe ingresar el número de trabajo, en este caso
[1]
:fuente
GNU paralelo es exactamente la herramienta que está buscando.
parallel -j 9 yourcommand
fuente
Mi pequeño molino:
Hará la configuración del terminador (términos de diseño) para muchas ventanas en un grupo.
EDITAR: al menos, el terminador puede enviar difusión a cada terminal en el mismo grupo. Esta función es conmutable, por lo que puede habilitarla para escribir 'su -' y luego deshabilitar y escribir la contraseña propia en los terminales onces y habilitarla nuevamente.
fuente