Dyskusja: Linux
Podgląd pojedynczego posta
Stary 29.01.2014, 08:46   #323
sobrus
Jukebox Hero
 
Avatar użytkownika sobrus
 
Data rejestracji: 17.09.2004
Lokalizacja: Back for the Attack
Posty: 10,800
sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>sobrus ma z czego być dumnym <1000 - 1499 pkt>
Cytat:
Napisany przez andy Podgląd Wiadomości
Poleceniem:
Kod:
acpi -b | cut -b 21-23 | tr -d [:space:]
uzyskam % naładowania bakterii.
Wystarczy teraz, że w /etc/pm/power.d umieszczę skrypt który się uruchomi i w pętli i będzie wykonywał co 5-10 minut? Katalog config.d zawiera pliki które są uruchamiane m. in. kiedy wyjmę/włożę baterię?


1. Skrypt się uruchamia w momencie wpięcia bakterii;
2. Zmienna battery ma wartość 0;
3. W pętli wykonuje się polecenie: acpi -b | cut -b 21-23 | tr -d [:space co powiedzmy 5-10 minut. Warunek wyjścia z pętli to wartość polecenia acpi >= 45;
4. W momencie wyjścia z pętli (battery >= 45) wykona się np.: notify-send "Poziom bakterii 45%!"

Optymalnie?

Poniżej szkielecik skryptu:
Jeżeli chcesz skrypt wykonywany co pewien okres czasu to możesz zrobić to w cronie, ale jeżeli to z jakiegoś powodu się nie powiedzie to zawsze możesz zrobić to mniej więcej tak :

Kod:
while true
do
  wynik=$(acpi | grep blablabla)
  ac=(tutaj instrukcje wykrywające podłączoną łądowarkę)
  if [ wynik >= 45 ] && [ ac = podłączona ]
  then
    notify-send "odłącz ładowarkę"
  fi
  sleep 600
done
i odpalić w autostarcie.

pamiętaj że notify-send musi być odpalane jako użytkownik który ma otwartą sesję X, dobrze też byłoby przedłużyć trwanie komunikatu, bo 5 sekund można przegapić.
niestety nie pomogę ze zdarzeniami wzwiązanymi z baterią, bo mam stacjonarkę i nawet nie mam zainstalowanych pm-utils (systemd je zastąpił).

ps. warunek if tak napisany na 90% nie zadziała, trzeba napisac po bashowemu

Ostatnio zmieniany przez sobrus : 29.01.2014 o godz. 08:55
sobrus jest offline   Odpowiedz cytując ten post