Como executo um script remoto com 'telas'?

1

Eu preciso executar um script localmente. O problema é que ele precisa usar screen e enviar o comando ctrl d.

Como eu faria isso? O script estará na minha máquina windows local. Eu posso usar o winscp, putty, mingw e outros aplicativos.

    
por Gilles 02.04.2011 / 20:40

3 respostas

1

Você pode usar espera (exibir página inicial , incluída na maioria das distribuições de software unix) para interações de script com programas executados em terminais de texto.

No entanto, provavelmente existe uma maneira mais simples de fazer o que você está tentando fazer. Você pode enviar comandos para uma sessão de tela a partir de qualquer linha de comando, e você pode usar o comando stuff da tela para inserir entrada em uma janela de tela. Veja Por que a tela aparentemente não faz nada com comandos passados com -X? , Enviando entrada para uma sessão de tela de fora para exemplos.

screen -S sessionname -p windowname -X stuff $'
screen -S sessionname -p windowname -X stuff $'%pre%4'
4'

Se essa resposta não estiver ajudando você, forneça mais informações sobre o que você está tentando fazer.

    
por 02.04.2011 / 20:52
1

Da tela (1) manual

   -d|-D [pid.tty.host]
        does not start screen, but detaches the elsewhere running screen
        session. It has  the same  effect  as typing "C-a d" from screen’s
        controlling terminal. -D is the equivalent to the power detach key.
        If no session can be detached, this option is ignored. In combination
        with the -r/-R option more powerful effects can be achieved:

Eu costumo usar screen -AmdS sessionname commandline para executar uma linha de comando em uma sessão de tela e imediatamente desanexar. por exemplo. executando uma tela de um cronjob

@reboot /usr/bin/screen -AmdS shoutcast /home/foo/sc_serv /home/foo/sc_serv.conf

Adicionando novos comandos em uma tela separada e desconectada imediatamente.

screen -dr sessionname -X commandline
    
por 02.04.2011 / 21:03
0

Seu arranjo não faz sentido para mim. Você está perguntando como enviar as chaves para a tela de algo fora da tela? Você pode usar expect para esse senario. Você também pode iniciar a tela com um arquivo de configuração personalizado para alterar a ctrl-d para algo mais fácil de enviar.

    
por 02.04.2011 / 20:50