Come avviare Safari in una pagina del browser solo quando si interrompe l'errore 502?

3

Ho una situazione in cui se spingo un aggiornamento su un'istanza sul web, ci vorranno 3-5 minuti per compilare, e quando la compilazione sarà terminata con successo, l'istanza scatterà Errore 502 per un paio di minuti prima che riprenda a funzionare.

Sto cercando una soluzione in cui l'istanza (un URL del server) verrà interrogata ogni 5 secondi circa e quando smetterà di rispondere 502 , Safari si avvierà.

Qualche idea su come potrei farlo? Finora, sul terminale, posso eseguire questo:

curl -I http://url 2>/dev/null | head -n 1 | cut -d$' ' -f2

e questo produrrà la risposta della porta HTTP o qualsiasi altra cosa, ma non sono abbastanza esperto da "farlo ogni 5 secondi" o per definire un "Se (risposta risultante) è X, continua ciclo ripetuto, ma If (risultante risposta) è Y, quindi avviare Safari con un URL ".

Qualche idea?

    
posta esaruoho 29.01.2018 - 15:44
fonte

1 risposta

3

Uno script "veloce e sporco" per realizzare ciò che stai cercando di fare potrebbe essere scritto come:

#!/bin/bash

url = "http://url"
code='curl -I $url 2>/dev/null | head -n 1 | cut -d$' ' -f2'

while [ "$code" == 502 ]
do
  sleep 5
  echo trying again
  code='curl -I $url 2>/dev/null | head -n 1 | cut -d$' ' -f2'
done

open -a Safari $url

In sostanza, ciò che fa è caputurare il valore che viene generato in una variabile chiamata code . Quindi valuta quella variabile in un ciclo While / Do ogni 5 secondi fino a quando il valore cambia. Quando ciò accade, esiste il ciclo e avvia un'istanza di Safari che punta all'URL.

    
risposta data 29.01.2018 - 16:56
fonte

Leggi altre domande sui tag