
Minha situação é essa. Quero que um script seja executado pressionando um botão no meu site (página de controle do administrador). Meu servidor web (linux) e caixa dedicada (windows 2012) estão em locais diferentes.
Por exemplo:
Página do servidor web | Servidor Ded
|
'Reiniciar aplicativo' ------>------>---|-->->Script_To_Restart_App
O servidor Windows 2012 não está executando o serviço de servidor web do Windows IIS. Prefiro não executá-lo, pois não executará uma página da web.
Existe alguma maneira de isso ser possível?
Obrigado,
Clayton
Responder1
O que você está sugerindo não é trivial. Existem algumas abordagens:
Faça com que seu aplicativo em execução na caixa do Windows ouça mensagens solicitando que ele seja reiniciado. Quando receber essa mensagem, reinicie. Existem várias maneiras de ouvir essa mensagem e você pode escolher a mais fácil com base em como construiu o aplicativo. Por exemplo, comece a escutar em uma porta conhecida e quando receber uma mensagem dizendo 'reiniciar', faça isso. Isso requer a capacidade de alterar o aplicativo, obviamente. Uma variante disso é construir outro aplicativo/serviço que apenas escuta mensagens de reinicialização e interrompe/inicia o aplicativo original. Isso pode ser desejado se você não puder alterar seu aplicativo original ou preferir não fazê-lo.
Use algo no Windows para reiniciar o aplicativo. Existem formas incorporadas (por exemplo, WMI) para reiniciar serviços e provavelmente para iniciar e parar processos. Isso é mais difícil porque você deseja fazer isso em uma caixa que não seja do Windows. Existe uma ótima ferramenta 'psexec'http://technet.microsoft.com/en-gb/sysinternals/bb897553.aspxisso torna muito fácil fazer essas coisas remotamente, e há uma versão Linuxhttp://steronius.blogspot.co.uk/2013/05/psexec-via-linux.htmlentão isso pode funcionar bem. Isso não exigirá nenhuma programação, mas mais confusão com configuração e autenticação... talvez, ou poderá funcionar imediatamente. Você chamaria psexec do seu script php com os argumentos de linha de comando necessários para reiniciar o aplicativo do Windows.
Responder2
Dê uma olhada no winexe. É uma ferramenta de linha de comando para Linux semelhante à ferramenta psexec do Windows. Winexe executa remotamente comandos em sistemas Windows a partir de Linux. Pacotes para winexe para diversas distribuições Linux comuns estão disponíveis no sitePacote winexe do openSUSElocal na rede Internet.