我正在为gnote使用一个简单的dbus-monitor脚本。该脚本在gnote启动时启动。我修改了桌面文件的exec
参数来实现这一点。
问题是我在应用程序(即 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
但它没有用。我也尝试使用trap
,如question中所述,但没有成功。