Conky で実行したいBashスクリプトはループなので、1回だけ実行する必要があります。これは、VoIPルーターがダウンした場合の監視スクリプトです。
${execi 3600 /home/justin/pingvoip}
Conkyは上記のコードから始めたくありません。
スクリプトをログファイルに出力することで問題を回避し、ログファイルをconkytailしました。
スクリプトを見たい人のために:
#!/bin/bash
rm /home/username/ping.log #deletes the log file when the script starts
downTime=0
lastAccessTime=$(date +"%s")
while [ true ]; do
if ! ping -c1 192.168.1.28 >& /dev/null; then
downTime=$(( $(date +"%s") - $lastAccessTime ))
else
downTime=0
lastAccessTime=$(date +"%s")
fi
sleep 60
if [ $downTime -ge 60 ]; then
notify-send -u normal "VoIP is down! Please Reboot." #displays a desktop notification
mplayer -nolirc -really-quiet /home/username/chime.ogg #plays a sound
echo "`date +%b%e,%l:%M%p` $1": "VoIP is down!" >>/home/username/ping.log #writes Date & text to the log file
fi
done
これを行う方法は、exec
、execp
、execi
、pre_exec
、execbar
、execgraph
などのconkyコマンド/変数を使用することです。
他のconky変数と同じように、bashが続くだけです-
${pre_exec ls -flah}
または
${exec your_script.sh}
execi
とpre_exec
を除いて、これらすべてがconky'ticks 'のたびに実行されることに注意してください。これは、スクリプトによっては非常にリソースを消費する可能性があります。
Conkyオブジェクトのリスト :の完全なリストと詳細情報を参照してください。