概要
長いバッジ処理などが終わったかどうかの通知って結構面倒くさくて、そもそもスクリプトに仕込んどけって話なんだけど、動かしたあとに「あ、これ結構ながいやつだ」みたいなスクリプトもあるので、
- processを監視する
- processが消えたタイミングでiPhoneに通知する
- bashでどこでも動く
みたいなのを作った。
事前準備
iftttのmaker channelを使っているので、iftttのアプリをiPhoneに入れて、iPhoneに通知が行くようにレシピを入れておく。
参考
http://mag.switch-science.com/2015/06/25/ifttt-maker-channel/
script
#!/bin/bash
CURL=/usr/bin/curl
IFTTT_EVENT="<your event name>"
IFTTT_KEY="<your ifttt key>"
IFTTT_URL="https://maker.ifttt.com/trigger/${IFTTT_EVENT}/with/key/${IFTTT_KEY}"
PROCESS_NAME=`cat /proc/$1/cmdline`
send_notification(){
${CURL} -X POST \
${IFTTT_URL} \
--header "Content-Type: application/json" \
--data-binary "{\"value1\": \"${PROCESS_NAME}\"}"
}
while true
do
kill -0 $1 > /dev/null 2>&1
if [ $? = 0 ]; then
echo "alive"
else
echo "dead"
send_notification
break
fi
sleep 3
done
起動
バックグラウンドで起動する。(digitalocean上でよく使うので、nohup入れている)
[root@centos-512mb-sgp1-01 ~]# sleep 30&
[1] 15619
[root@centos-512mb-sgp1-01 ~]# nohup bash ifttt.sh 15619 > /dev/null 2>&1 &
[2] 15682
届いた。Apple watchで終了通知とか受け取ると未来感ある。