jenkins / hudson: janelas CMD em lote não são visíveis quando o escravo é executado como serviço do windows

1

Eu executo o Jenkins Slaves como um serviço do Windows, que então inicia uma cadeia de chamadas (por exemplo):

Slave.exe- > ant- > cmd batch- > notepad.exe

O problema é que o "notepad.exe" não está visível, posso vê-lo no gerenciador de tarefas, mas ele não mostra sua interface do usuário.

A plataforma windows é win server 2008, e configurei o serviço "Fazer logon como conta do sistema local", com a opção "Permitir que o serviço interaja com a área de trabalho" marcada.

Alguma idéia sobre isso? Muito obrigado

    
por Michael Lin 22.04.2012 / 14:33

2 respostas

1

A partir do Windows Vista, todos os serviços são executados em uma sessão separada (sessão 0) e normalmente não podem interagir diretamente com o usuário, mesmo que "Permitir que o serviço interaja com a área de trabalho" esteja definido. Em outras palavras, você não deveria fazer isso. Você não pode executar o slave.exe em sua sessão de logon?

No entanto, como medida de mitigação de compatibilidade com versões anteriores, o Windows deve detectar que um serviço apresentou uma interface de usuário e oferecer para exibi-lo a você (em uma área de trabalho separada). Não sei por que isso não funcionaria. O serviço está configurado para ser executado como Sistema Local?

    
por 23.04.2012 / 07:11
1

Corri para um problema semelhante ao tentar iniciar alguns scripts de teste da web de scripts automatizados (que precisavam de uma GUI).

Esse é o truque. Você precisa iniciar uma conexão de área de trabalho remota, configurá-la para iniciar um .exe assim que a conexão for iniciada, inserir e salvar uma informação de autenticação e salvar a conexão em disco.

Ter o jenkins iniciando a conexão RDP salva e deve iniciar uma GUI para você.

Além disso, se você estiver executando vários comandos do windows em jenkins, você precisará ter cada comando como itens separados (se eles retornarem um código de saída, como se você estivesse chamando dois arquivos .bat ou algo assim)

    
por 23.04.2012 / 08:29