Uso Ubuntu 16.04 e ho bisogno della seguente tmux
soluzione perché voglio eseguire un processo di timeout con sleep
come nel mio caso particolare non ero soddisfatto at
e ho riscontrato un bug con nohup
(durante la combinazione nohup-sleep
). Ora, tmux
sembra la migliore alternativa in quanto ha il suo meccanismo di non blocco e in realtà funziona benissimo nell'uso manuale (faccio la domanda solo per quanto riguarda l'automazione del processo che posso già fare manualmente con esso).
Ciò che di cui ho bisogno:
Ho bisogno di un modo per eseguire le seguenti 3 azioni, tutto in un'unica operazione:
- Allegare una nuova
tmux
sessione. - Iniettando un set pronto di comandi a quella sessione, come
(sleep 30m ; rm -rf dir_name ; exit)
. Preferirei in particolare un set multilinea e non una riga lunga. - L'esecuzione del comando precedente imposta il momento in cui è stato finito per essere scritto come stdin in una nuova
tmux
sessione.
In altre parole, voglio eseguire un set di codici in un'altra tmux
sessione che è stato creato appositamente per quella causa, ma per fare tutto in un'unica operazione.
Appunti:
Intendo fare tutto dalla mia sessione di lavoro originale (quella che lavoro dalla maggior parte delle volte). In generale, non ho intenzione di visitare la sessione appena creata, voglio solo crearla con il suo codice eseguito automaticamente e basta.
Se possibile, preferirei una soluzione ereditaria. Penso che sia più efficiente.
1.
ci sono due modi per farlo, uno prevede prima di creare uno script temporaneo (che contiene il codice) ed eseguirlo con la creazione e il secondo è un ereditario modo.2.
Se il secondo modo funziona (quando ogni riga dell'eco contiene ogni riga di codice dell'ereditarietà) perché dovremmo vederlo come un hack se è un codice valido di Bash? Forse perché le righe dell'eredoc sono echeggiate e non eseguite regolarmente negli heredoc?