web-dev-qa-db-fra.com

Ouvrez firefox à partir du fichier bash "Erreur: aucun affichage spécifié"

Je dois ouvrir un navigateur et accéder à mon serveur avec l'adresse IP 1.2.3.4. Tout d’abord, j’envoie une requête ping à mon serveur et, si la requête n’échoue pas, je lance la page d’accueil dans un navigateur. Pour cela, j'ai écrit un fichier bash comme suit:

# add ip / hostname separated by white space
myHost=1.2.3.4

# no ping request
COUNT=1

count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
# 100% failed
echo "Host : $myHost is down (ping failed) at $(date)"
else
    firefox $myHost
fi

Mais je reçois un message d'erreur Error: no display specified. Firefox ne se lance pas. Qu'est-ce que je fais mal.

Ce fichier est appelé toutes les 5 minutes à l’aide de cronjobname__. cronjobsemble fonctionner correctement.

4
Pre

Vous devez spécifier l'affichage.

Ajoutez ceci à votre script avant d'exécuter Firefox

 export DISPLAY=:0

votre script serait comme:

#add ip / hostname separated by white space
myHost=1.2.3.4
export DISPLAY=:0
# no ping request
COUNT=1

count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
# 100% failed
echo "Host : $myHost is down (ping failed) at $(date)"
else
    firefox $myHost
fi
3
Maythux