Vorrei avviare alcune applicazioni all'interno della sessione dello schermo ma da uno script.
Senza script vorrei solo avviare la schermata, quindi aprire N windows con crtl-ac ed eseguire i programmi in ciascuna finestra.
Ho provato quanto segue
screen -d -m -S test
screen -S test -X exec tail -f /var/log/messages
screen -S test -X screen
screen -S test -X exec tail -f /var/log/xinetd.log
Ma quando allego la coda della sessione non è in esecuzione. Se allego la sessione subito dopo screen -d -m -S startup
e corro screen -S startup -X exec tail -f /var/log/messages
da un altro terminale, funziona.
Ho dimenticato qualcosa ?
Modifica dopo la risposta AlexD:
Una soluzione funzionante a metà è
screen -d -m -S test tail -f /var/log/messages
screen -S test -X screen tail -f /var/log/xinetd.log
Il comando di concatenamento dello schermo (quello dopo -X) con il comando funziona mentre exec non è probabilmente perché exec si aspetta che venga definita una finestra corrente mentre non ce n'è una corrente quando lo schermo è staccato. Grazie ad AlexD per questi suggerimenti.
Ma c'è uno strano effetto collaterale: quando il programma si interrompe (se allego la sessione dello schermo e crtl-c la coda o uccidi la coda) la finestra dello schermo si chiuderà.
Quindi il comportamento non è lo stesso di Crtl-A c ed esegui il comando
Un altro effetto collaterale è che non puoi concatenare 2 comandi
screen
sempre termina quando il comando con cui è stato lanciato estremità - si tratta di una caratteristica normale dello strumento :) ..quindi se si eseguescreen top
, quando si escetop
,screen
si chiuderà, anche