bash script para iniciar outro script em uma sessão tmux

2

Eu tenho um script bash que continuamente produz algumas informações quando executado. Preciso

  1. Executa automaticamente quando meu sistema é inicializado.
  2. Monitore essa saída e controle-a de vez em quando remotamente, usando ssh.

Para este propósito, eu gostaria de usar o tmux. Então, como eu abordo isso? Por simplicidade, digamos que meu script de shell é este:

nome do arquivo: start.bash

#!/bin/bash
# just an example for simplicity    
watch date

Eu preciso de outro script que execute isso no tmux e seja capaz de anexar isso quando eu precisar, mais tarde. Eu estou lutando na parte em que preciso criar uma nova sessão do tmux com um nome e fazer com que ele execute outro script de shell. Uma vez que eu tenho este trabalho, eu posso colocar isso em outro script de shell e cuidar do resto das coisas. Isso é fácil, eu acho. Alguém pode me dar um exemplo para este passo específico, por favor?

    
por code4kix 15.12.2017 / 22:02

2 respostas

3

Você pode fazer isso de várias maneiras.

Você pode fazer isso depois de criar a sessão com chaves de envio:

tmux new -s "remote" -d
tmux send-keys -t "remote" "start.bash" C-m
tmux attach -t "remote" -d

Ou através do shell:

tmux new -s "remote" -d "/bin/bash"
tmux run-shell -t "remote:0" "start.bash"
tmux attach -t "remote" -d
    
por 16.12.2017 / 00:38
0

Inicie uma sessão do tmux no servidor e não feche-a. Ele continuará sendo executado no servidor. Do seu computador cliente, você poderá usar o ssh e executar

tmux attach

para se reconectar ao que você estava executando na sessão do tmux. Para iniciá-lo no momento da inicialização, se você reinicializar o servidor, inicie o tmux a partir de um script de shell executado em /etc/rc.local

    
por 17.12.2017 / 02:19

Tags