Como posso esperar até que um servidor da Web esteja pronto antes de iniciar um script

2

Eu cheguei perto disso, mas parece que não consigo terminar o script depois de ter sido bem-sucedido. Simplesmente repete.

Para fins de teste, estou apenas procurando exibir um diálogo quando o URL contiver a string "RUNNING". Eventualmente isso será o meu gatilho para lançar o cliente que requer que o servidor esteja pronto.

Para ver o que está acontecendo, adicionei caixas de diálogo adicionais exibindo o valor da verificação $.

Aqui está o que eu tenho até agora:

#!/bin/bash
check="false"
webserv="http://localhost:8088/main/system/gwinfo"
Keyword="RUNNING" # enter the keyword for test content
zenity --error --text=$check --title="Warning\!";

until [$check=="true"]
do

zenity --error --text=$check --title="Warning\!"; 

if curl -s "$webserv" | grep "$Keyword";
then
    # if the keyword is in the conent
    zenity --error --text="RUNNING\!" --title="Warning\!"; 
    check="true";

fi
done

O que vejo quando executo são os seguintes diálogos: 1. falso 2. falso 3. EXECUTANDO /! 4. true

Depois disso, simplesmente repete RUNNING /! & amp; verdade. O loop até não está vendo a verdade.

Alguma idéia?

    
por Justin Baker 15.07.2017 / 21:57

1 resposta

0

Eu percebi desde que eu pude ver que a variável não estava sendo lida fora do loop que eu precisava repensar. O propósito do loop era continuar tentando até que o servidor estivesse funcionando. Então simplifiquei a coisa toda e acabei de sair no último passo, se for verdade.

#!/bin/bash
check="false"
webserv="http://localhost:8088/main/system/gwinfo"
Keyword="RUNNING" # enter the keyword for test content

until [$check=="true"]
do



if curl -s "$webserv" | grep "$Keyword";
then
    # if the keyword is in the conent
    ./clientlauncher.sh scope=C project=Edge windowmode=fullscreen  
    exit

fi
done
    
por Justin Baker 17.07.2017 / 03:46