Como eu uso o comando “screen” se não souber de onde vem o ps ou tty?

7

Eu estou fazendo um programa python que é iniciado na inicialização. Eu gostaria que eu pudesse interagir com esse programa através do comando "screen". Então, se eu precisar falar com o programa através de um tty diferente, ssh, ou algo assim, eu seria capaz de fazê-lo.

Eu gosto de mantê-lo para que eu possa usar um script bash para anexar a tela no meu terminal, em vez de ter que procurar onde está - já que eu preciso de outras pessoas (que não usam o terminal) capaz de acessá-lo.

    
por user3346931 14.07.2015 / 21:51

1 resposta

1

A maneira mais segura de anexar à sessão da tela certa é o script Python gravar em um arquivo designado para relatar em qual screen sessão ele está sendo executado. Pense nisso como algo análogo a um arquivo PID, exceto que você estão relatando o TTY em vez do ID do processo. Caso contrário, se houver várias sessões de screen , haverá adivinhação envolvida.

Então, ao iniciar o processo Python, execute

echo "$STY" > /var/run/python-proc.screen

… ou de dentro do próprio programa Python,

with open('/var/run/python-proc.screen', 'w') as f:
    print(os.environ['STY'], file=f)

Em seguida, os usuários podem se conectar a ele executando

screen -x -m 'cat /var/run/python-proc.screen'
    
por 26.10.2015 / 08:31