Como posso obter um ambiente de subshell cmd.exe 'desktop' quando SSH'ed no cygwin?

5

Configurei com êxito o SSH no cygwin, para que eu possa usar o SSH na minha conta de usuário do Windows e acessar o bash shell no cygwin. Isso é ótimo.

No entanto, eu tenho um programa python que gostaria de executar neste ambiente (estarei executando o Windows, e não o python cygwin) que espera que muitas das variáveis de ambiente padrão do Windows estejam disponíveis. Mas se eu iniciar o cmd.exe a partir do shell bash do cygwin, recebo um ambiente cmd.exe que é preenchido com uma mistura de valores cygwin-esque (MANPATH, LOGNAME) e um subconjunto das variáveis de ambiente do windows-esque: AllUSERSPROFILE e COMPUTERNAME, por exemplo, mas muitas variáveis que normalmente veria se eu lançasse uma janela de prompt de comando da área de trabalho do windows estão faltando: PROCESSOR_ARCHITECTURE, NUMBER_OF_PROCESSORS, etc.

O programa que gostaria de executar na minha sessão SSH (SCons) depende desses valores e de vários outros. Existe alguma maneira de, dentro da sessão SSH, iniciar cmd.exe como subshell que obterá um ambiente de 'prompt de comando iniciado a partir da área de trabalho'?

Eu não quero explicitamente definir todos os valores potencialmente necessários porque essa solução é bastante frágil. Estou procurando um mecanismo automático.

Existe algum mecanismo pelo qual eu possa obter um 'ambiente desktop cmd.exe' dentro de uma sessão SSH do cygwin?

    
por acm 28.05.2013 / 20:39

1 resposta

2

Eu entendo que o env vars que você está perdendo é o seu usuário vars. Por padrão, o Cygwin só importa o sistema vars quando o shell é lançado via SSH. Você pode tentar a solução vinculada nesta resposta para que o Cygwin importe seu usuário vars ao iniciar via SSH.

    
por 28.05.2013 / 22:15