Eu uso o Ubuntu 16.04 e preciso da seguinte tmux
solução, porque quero executar um processo de tempo limite com, sleep
como no meu caso particular, não estava satisfeito at
e encontrei um erro com nohup
(ao combinar nohup-sleep
). Agora, tmux
parece a melhor alternativa, pois possui seu próprio mecanismo no-hangup e, na verdade, está funcionando bem no uso manual (faço a pergunta apenas em relação à automação do processo que já posso fazer manualmente).
O que eu preciso:
Preciso de uma maneira de executar as três ações a seguir, tudo em uma operação:
- Anexando uma nova
tmux
sessão. - Injetando um conjunto pronto de comandos para essa sessão, como
(sleep 30m ; rm -rf dir_name ; exit)
. Eu preferiria especialmente um conjunto de várias linhas, e não uma fila longa. - A execução do comando acima definiu o momento em que foi finalizado para ser gravado como stdin em nova
tmux
sessão.
Em outras palavras, desejo executar um conjunto de códigos em outra tmux
sessão criada especialmente para essa causa, mas fazer tudo em uma operação.
Notas:
Pretendo fazer tudo da minha sessão de trabalho original (aquela em que trabalho na maioria das vezes). Geralmente, não tenho intenção de visitar a sessão recém-criada, só quero criá-la com seu código executado automaticamente e é isso.
Se possível, eu preferiria uma solução heredoc. Eu acho que é mais eficiente.
1.
Existem duas maneiras de fazer isso: uma envolve criar primeiro um script temporário (que contém o código) e executá-lo com a criação e a segunda é um heredoc caminho.2.
Se a segunda maneira funciona (quando cada linha de eco contém cada linha de código do heredoc), por que devemos ver isso como um hack, se for um código válido do Bash? Talvez porque as linhas do heredoc são repetidas e não executadas regularmente nos heredocs?