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.
fonte
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?/dev/shm
. Também é um truque, pois é mais complicado, difícil de ler, entender e manter do que simplesmente escrever o script em um arquivo comum e começar com eletmux
.1.
sua pergunta) .tmux new-session -d -s "myTempSession" /opt/my_script.sh
ele não abre um arquivo temporário para colar o código ... O que eu preciso é abrir o script diretamente da sessão atual ou pelo menos algo para mover para a nova sessão e, em seguida, voltar diretamente para o sessão atual. BTW, pretendo dar recompensa por toda a sua ajuda, pois é o mínimo que posso fazer para agradecer e posso dar uma recompensa em 11 horas.Consulte também /server/339390/run-command-in-detached-tmux-session para obter exemplos de uso do comando send-keys em um painel desanexado.
fonte