Como executo um comando em uma tela específica?

1

No momento, estou configurando um servidor e existem programas diferentes que quero executar em segundo plano, enquanto ainda consigo visualizar o console de cada programa sob demanda.

Por isso, estou tentando criar automaticamente uma tela para cada programa e iniciar o programa dentro da tela criada, mas os comandos dentro da tela não parecem estar em execução.

Estou criando uma tela com screen -dmS screen1 e tentando executar um comando com screen -S screen1 -X cmd , mas a tela não faz nada.
Por exemplo, se eu executar screen -S screen1 -X touch /home/user/test , o arquivo não será criado.

O problema de início automático foi resolvido

    
por y-spreen 08.11.2014 / 15:11

1 resposta

1

Você precisa enviar um enter para que isso funcione. Para isso, pressione ctrl + v e digite Enter . Por exemplo, seu comando ficaria assim:

screen -S screen1 -X stuff 'touch /home/user/test^M'

Lembre-se de que o texto "apenas" será preenchido na sua primeira janela, o que falhará se já houver algum "texto" no console.

Dê uma olhada em Tela do GNU FAQ: Como enviar um comando para uma janela em uma sessão de tela em execução a partir da linha de comando para exemplos adicionais.

Uma maneira de fazer isso na inicialização da tela é usar .screenrc com algo como:

# Start some screens by default
screen -t touch -L /bin/sh -c "touch ~/test3;bash"
screen -t mc -L /bin/sh -c "mc;bash"
    
por Criveti Mihai 08.11.2014 / 17:19