Você pode tentar usar um loop while para aguardar o lançamento do serviço:
#!/bin/sh
# If the notification daemon isn't running then launch it
if ! pgrep -f "notification-daemon" > /dev/null; then
/usr/lib/notification-daemon/notification-daemon &
fi
# Wait for the notification daemon to finish launching
while ! pgrep -f "notification-daemon" > /dev/null; do
# Set optional delay
sleep 0.1
done
# Play awesome song (do-doop da-doop doop-doop-doop...)
notify-send "Take 5"
aplay /home/Me/Music/brubek-clip.wav
Isso deve garantir que você não continue até que o daemon esteja em execução (por exemplo, se, por algum motivo, ele demorar mais do que seu sono de 0,5 segundos).
Eu fiz um pouco de pesquisa na web para postagens semelhantes e encontrei algumas que parecem relevantes:
Todos parecem seguir a mesma abordagem básica - use um loop para esperar até que a condição desejada seja atendida.
UPDATE: Acontece que esperar que o processo comece não é suficiente. Nesse caso, você precisa aguardar o serviço ficar disponível. Você pode querer olhar para os seguintes posts: