Sou um grande fã da "tela" do programa Linux, que me permite iniciar uma tela dentro de uma sessão SSH que pode permanecer ativa após eu me desconectar.Mais informações sobre a tela aqui
Existe uma maneira de iniciar uma sessão de tela a partir de uma linha de comando que inicia automaticamente outro programa (ou script .sh) nessa sessão de tela?
Eu gostaria de adicionar isso à sequência de inicialização do meu raspberry pi para que sempre haja uma tela rodando automaticamente algum software, mesmo que o pi seja reiniciado, para que eu possa fazer ssh no pi a qualquer momento para ver a saída desse software.
eu olheiesta solução, mas isso ajuda apenas parcialmente. Começa a tela assim
screen -t "df" watch -n 10 df
e inicia com sucesso o comando "df".
No entanto, quando o programa termina de ser executado, a tela fecha e desaparece.
Gostaria que a tela permanecesse ativa mesmo que o programa iniciado originalmente fosse concluído.
Responder1
Altere o comando para:
screen -t "df" bash -c 'watch -n 10 df; exec bash'
bash -c
: Usarbash-cpara executar vários comandos.
exec bash
: Depoisdfcomando terminar, ele iniciará um shell (bash) que não será encerrado até que algo externo o termine.
Responder2
Você faria isso executando os comandos em um shell que permanece em execução após a conclusão do comando.
Por exemplo, emImpedir que a tela GNU termine a sessão quando o script executado terminar, a resposta aceita faz uma
exec bash
após o comando, para iniciar um shell quando o comando for concluído.