私はgnote
の簡単なdbus-monitor
スクリプトを使用しています。スクリプトは、gnote
の開始時に開始されます。これを実現するために、.desktop
ファイルのExec=
-lineを変更しました。
問題は、アプリケーション( gnote )の終了後にスクリプトを強制終了する方法が見つからなかったことです。アプリケーション自体が終了する場合、出力を取得しないため、スクリプトをバックグラウンドで実行し続ける意味はありません。
スクリプトは次のようになります:
#!/bin/bash
OJECT="'org.gnome.Gnote'"
IFACE="'org.gnome.Gnote.RemoteControl'"
DPATH="'/org/gnome/Gnote/RemoteControl'"
echo $IFACE
WATCH1="type='signal',sender=${OJECT},interface=${IFACE},path=${DPATH},member='NoteAdded'"
WATCH2="type='signal',sender=${OJECT},interface=${IFACE},path=${DPATH},member='NoteSaved'"
WATCH3="type='signal', sender=${OJECT}, interface=${IFACE}, path=${DPATH}, member='NoteDeleted'"
dbus-monitor ${WATCH2} |
while read LINE; do
echo $LINE | grep "note://"
done
次のように変更しようとしました:
dbus-monitor ${WATCH2} |
while read LINE; do
echo $LINE | grep "note://"
if pgrep "gnote" > /dev/null; then
echo ""
else
break;
fi
done
pid=`pidof -x $(basename $0)`
kill $pid
しかし、うまくいきませんでした。このquestionで説明されているように、trap
も使用しようとしましたが、成功しませんでした。