そのため、特定のユーザーがログオンするときにラップトップを接続することを確認する小さなスクリプトを作成しました(そうしないと無効になります)。スクリプトは、notify-sendを使用して、プラグインするよう指示します。プラグインすると、スクリプトは終了します。彼がそれを接続したときに通知を自動的にクリアすることは可能ですか?何らかの方法で、notify-sendによってプロセスIDを生成し、そのPIDを強制終了する必要があると考えていますが、これを行う方法はわかりません。
現在のスクリプトは次のとおりです。
#!/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
探しているプロセスはnotify-osd
です。次のいずれかのコマンドでそれを殺すことができます:
pkill notify-osd
またはそのpidによって:
kill $(ps -e | grep notify-osd | awk '{ print $1 }')
あるいは、@ kosが示唆するように(ありがとう!)、pgrep
を使用して:
kill $(pgrep ^notify-osd$)
Mint MATEを使用しています17プロセスはリストされています(例)15107? Sl 0:00/usr/lib/mate-notification-daemon/mate-notification-daemon
$ pkill mate-notification-daemon
、さらには$ pkill mate-notification
としてpkillを試しましたが、うまくいきませんでした。ただし、「通知」Wordを切り捨てると、機能しました:$ pkill mate-notificati
Wordに「on」を追加すると機能しなくなります。理由がわかりません。これは、Ubuntu MATEエディションにも当てはまると思います。