Avvia più app in esecuzione in shell divise in un'unica console


9

Devo avviare più app in esecuzione in shell e monitorarne l'esecuzione. Attualmente ho uno script principale che avvia tutte le app in una nuova console gnome ma preferirei avviarle tutte nella stessa finestra in schermi divisi.

Questo post Più shell in una finestra spiegano come usare schermi divisi con molti tipi di applicazioni console come schermo, terminatore e byobu. Funziona bene manualmente, ma vorrei poter avviare automaticamente tutte le mie app in una console a schermo diviso dal mio script principale. Nella documentazione degli strumenti sopra menzionati non c'era nulla che potessi fare per ottenere questo automaticamente da una sceneggiatura.

Qualche idea?

Risposte:


6

È possibile creare un file di configurazione dello schermo personalizzato che aprirà più suddivisioni e avvierà gli script in essi. Sarebbe simile a questo:

screen script1.sh # Open first screen and launch first script
split             # Make second split
focus             # Switch to second split
screen script2.sh # Open second screen and launch second script
split             # Make third split
focus             # Switch to third split
screen script3.sh # Open third screen and launch third script

Mettilo in un file chiamato myscripts e avvia la schermata con screen -c myscripts. Se preferisci le divisioni verticali, aggiungi semplicemente -v ai comandi di divisione.

Se desideri un layout a griglia, prova qualcosa del genere:

screen script1.sh # Open first screen and launch first script
split -v          # Make second split
focus             # Switch to second split
screen script2.sh # Open second screen and launch second script
split             # Make third split
focus             # Switch to third split
screen script3.sh # Open third screen and launch third script
focus             # Cycle back to first split
split             # Split first split horizontally
focus             # Switch to new split
screen script4.sh # Open fourth screen and launch fourth script

Grazie mille ha funzionato come un fascino. L'unico altro problema è che dopo aver avviato i miei script multipli, posso Ca Cd per tornare al mio terminale ma quando faccio "screen -r" riprende con la mia ultima scheda aperta e non riesco più a vedere l'output delle altre schede. "screen -ls" mostra solo un'istanza ma posso vedere che tutti i miei script sono ancora in esecuzione nell'elenco dei processi con "ps". Quindi, come posso staccare il mio schermo multi-tab e tornare ad esso con lo stesso stato?
jmbouffard,

Ho trovato una domanda da superutente a riguardo: superuser.com/questions/69816/… Sembra un problema spinoso. Mi viene in mente che potresti anche essere in grado di creare una macro che ristabilisce le tue divisioni.
Ben Williams,

Il suggerimento dal forum di superutente non sembra funzionare per me perché la sessione nidificata non sembra usare la mia configurazione quando la avvio con l'opzione -c.
jmbouffard,

Ho anche provato l'altra tua idea per ristabilire le mie divisioni con un file di configurazione come quello mostrato nella tua risposta. Ma immagino di dover usare "screen -r -c macro" ma sembra che non riesca a combinare l'opzione -r con -c perché non tiene conto dei miei comandi. "-c" da solo ristabilisce le mie divisioni con schermi vuoti, "-r -c macro" fa esattamente la stessa cosa di "-r" e non crea alcuna divisione.
jmbouffard,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.