GNU / screen não definindo $ STY

1

Estou tentando fazer o script da desova de janelas GNU / screen usando comandos do formulário screen <CMD> .

Por alguma razão, quando eu inicio o GNU / screen (manualmente), o shell que ele inicia na janela 0 ( /bin/bash ) não contém uma variável de ambiente $STY . Sem esses comandos como screen vim inicie uma sessão de tela aninhada , não outra janela como eu quero.

Meu ambiente é um tanto incomum. Aqui está como eu acabo nisso:

ssh robm@somehost
sudo su sharedaccount
script /dev/null
screen

A etapa script /dev/null existe porque o dispositivo TTY alocado para o usuário robm não pode ser acessado pelo usuário sharedaccount . O comando script aloca um novo TTY que pertence ao usuário que o invocou, solucionando esse problema.

Se eu pular as etapas sudo e script , o GNU / screen definirá $STY bem. Em outras palavras, isso funciona bem:

ssh robm@somehost
screen

Presumivelmente, algo sobre sudo e script interfere com screen , mas estou perplexo quanto a quê.

    
por RobM 25.01.2011 / 17:18

2 respostas

2

Gah, foi culpa do script sharedaccount SHELL. Ele estava chamando exec env -i ... para criar um novo shell sem a sujeira do ambiente do usuário original.

Desculpe se perdi o tempo de alguém.

    
por 25.01.2011 / 17:40
0

Acho que você poderia pular a etapa script /dev/null e corrigir seu problema se você alterasse sua chamada para su emitindo-a com um traço, como: sudo su - sharedaccount . Isso definiria todas as suas variáveis de ambiente principalmente do jeito que elas estariam se você estivesse logado como sharedaccount .

    
por 13.08.2012 / 06:47