web-dev-qa-db-ja.com

bashファイル「fire:no display specified」からfirefoxを開きます

ブラウザを開き、IPアドレス1.2.3.4でサーバーにアクセスする必要があります。最初にサーバーにpingを実行し、pingが失敗しなかった場合は、ブラウザーでホームページを起動します。このために、次のようにbashファイルを作成しました。

# 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

しかし、エラーメッセージError: no display specifiedが表示されます。 Firefoxが起動していません。私は何を間違えていますか。

このファイルは、cronjobを使用して5分ごとに呼び出されます。 cronjobは正常に機能しているようです。

4
Pre

表示を指定する必要があります。

Firefoxを実行する前にこれをスクリプトに追加してください

 export DISPLAY=:0

あなたのスクリプトは次のようになります:

#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