O problema
... é que seu script dbus-monitor executa um processo-filho ( dbus-monitor
) que não é eliminado com o script, tornando o script "inutilizável".
O que fazer
O que você precisa fazer é usar um wrapper, executando o gnote + o script do monitor, e quando gnote
terminar, mate o script dbus-monitor
- pelo comando:
pkill -P <pid>
... onde <pid>
é o pid do seu script de monitor (usei pgrep -f /path/to/script
). Isso matará o script e seus filhos, finalizando-o com sucesso.
Eu encontrei exatamente o mesmo problema escrevendo esta resposta .
O wrapper
Assumindo que seu script de monitor é executável, execute gnote
pelo comando:
'/path/to/monitorscript' & gnote && pkill -P "$( pgrep -f '/path/to/monitorscript )"
O mais fácil é torná-lo um script de uma linha e iniciar o script a partir do seu .desktop
-file