Comando 'screen' do Linux - Iniciar uma tela e algo para rodar nela ao mesmo tempo?

Comando 'screen' do Linux - Iniciar uma tela e algo para rodar nela ao mesmo tempo?

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.

informação relacionada