É possível cancelar ou limpar uma notificação criada usando o comando notify-send?

3

Então eu escrevi um pequeno script que garante que um determinado usuário se conecte em um laptop quando ele faz logon (ele desabilita se ele não o faz). O script usa notificar-enviar para dizer a ele para ligá-lo. Se ele conecta-lo, o script é encerrado. É possível limpar a notificação automaticamente quando ele a conecta? Eu estou pensando que pode exigir de alguma forma recebendo o id do processo gerado por notificar-enviar e matar esse PID, mas eu não sei como fazer isso.

Este é o script atual:

#!/bin/bash 

cat /sys/class/power_supply/BAT0/status
OUTPUT="$(cat /sys/class/power_supply/BAT0/status)"
echo "${OUTPUT}"
if [ "${OUTPUT}" = "Charging" ] || [ "${OUTPUT}" = "Unknown" ]; then
    echo charging or full
elif [ "${OUTPUT}" = "Discharging" ]; then
    notify-send -i /home/evamvid/Documents/Programming/OokiNoUse/power25.png "Hey there brother" "plug it in"
    COUNTER=0
while [ "$COUNTER" -le 12 ]
do
    cat /sys/class/power_supply/BAT0/status
    OUTPUT="$(cat /sys/class/power_supply/BAT0/status)"
    echo "${OUTPUT}"
    if [ "${OUTPUT}" = "Charging" ] || [ "${OUTPUT}" = "Unknown" ]; then
        exit
    elif [ "${OUTPUT}" = "Discharging" ]; then
        COUNTER=$(($COUNTER+1))
        echo $COUNTER
        sleep 1
    fi
done
fi
    
por evamvid 23.06.2015 / 05:11

1 resposta

4

O processo que você está procurando é notify-osd . Você pode matá-lo com o comando:

pkill notify-osd

ou pelo seu pid:

kill $(ps -e | grep notify-osd | awk '{ print  }')

ou, melhor ainda, como sugerido por @kos (obrigado!), usando pgrep :

kill $(pgrep ^notify-osd$)
    
por Jacob Vlijm 23.06.2015 / 06:52