Jak ustawić zawieszanie komputera, gdy poziom naładowania baterii jest krytycznie niski?

21

Przypadkowo kliknąłem opcję „Gdy moc jest krytycznie niska” w Ustawieniach systemu> Moc. Oryginalny wpis był pusty, ale jedyne dwie opcje po kliknięciu to Hibernacja i Wyłącz. Chcę ustawić go z powrotem w tryb zawieszenia.

Satchit Bhogle
źródło
Z jakiej wersji Ubuntu korzystasz?
Anderson Green

Odpowiedzi:

7

Nie ma możliwości zawieszenia dostępnego.

Nie można zawiesić, gdy moc jest krytycznie niska, aby zawiesić, potrzebujesz energii, aby zapisać sesję w pamięci RAM, co pozwala na szybsze wznowienie, jeśli stracisz moc, stracisz obecny stan zawieszenia.

Hibernacja kopiuje bieżący stan na dysk twardy, jest wolniejszy, ale można wyłączyć zasilanie.

Wyłączenie jest oczywiste - stracisz wszystkie dane w aktywnej sesji i będziesz mieć nową sesję po ponownym uruchomieniu.

Mark Rooney
źródło
7
Może w idealnym świecie. Uwielbiam to, gdybym mógł skonfigurować moją maszynę do zawieszania się, gdy spadnie poniżej np. 15% baterii (wystarczająco łatwo na kilka godzin zawieszenia), ponieważ w tej chwili mogę ją skonfigurować tylko do wyłączenia (jaki rodzaj gwarancji stracisz dane) lub hibernacji (co jest całkowicie zepsute na moim komputerze). Oto niepotrzebne ograniczenia ...
Tomislav Nakic-Alfirevic,
2
Mam ten sam problem. Kiedyś zawieszał się, gdy poziom naładowania baterii jest krytycznie niski. Ale jak w pytaniu przypadkowo kliknąłem opcję „Gdy moc jest krytycznie niska” w Ustawieniach systemu> Moc. Oryginalny wpis był pusty, ale teraz mogę tylko wybrać opcję „Wyłącz”. Dlatego mój komputer wyłącza się, gdy poziom naładowania baterii jest krytycznie niski. W takim przypadku chciałbym zawiesić. Nie wiem, jak wrócić do pierwotnego stanu, w którym był zawieszony.
Mukesh Chapagain
1
W Ubuntu 12.04 opcja „hibernacji” jest wyłączona, a komputer uruchamia się ponownie zamiast zawieszać się, gdy poziom naładowania baterii jest krytycznie niski.
Anderson Green
1
@chapagain Mam dokładnie ten sam problem. Z jakiej wersji Ubuntu korzystasz?
Anderson Green,
1
@AndersonGreen Korzystam z Ubuntu 12.04
Mukesh Chapagain
20

Aby zmienić to ustawienie z powrotem w celu zawieszenia, użyj edytora dconf. Wejdź na org.gnome.settings-daemon.plugins.power i zmień działanie krytycznej baterii na zawieszenie.

Alternatywnie w sesji terminalowej użyj polecenia:

gsettings set org.gnome.settings-daemon.plugins.power critical-battery-action 'suspend'

gsettingsKomenda jest rezydentem domyślnie podczas dconf-editorwymaga instalacji poprzez:

sudo apt-get install dconf-tools
AtomHeartFather
źródło
Czy w programie Launchpad jest jakiś błąd związany z tym zawieszeniem pustego miejsca?
NoBugs
Nie działa już od GNOME 3.28.2 . Czy ktoś ma alternatywne rozwiązanie?
orschiro
9

Nie mam wystarczającej liczby przedstawicieli do edycji lub komentowania, więc jeśli ktoś by się tym przejmował, jest to komentarz / edycja odpowiedzi AtomHeartFather.

Możesz także zmienić wartości procentowe baterii uważanej za słabą / krytyczną za pomocą narzędzi dconf. W tej samej sekcji zasilania zmodyfikuj następujące wartości do żądanych wartości procentowych.

percentage-action

percentage-critical

percentage-low

Uwaga: Szczególną uwagę należy zwrócić na percentage-actionustawienie, które je wyzwoli critical-battery-action.

RayfenWindspear
źródło
Aby zmienić procentach, według tej odpowiedzi, use-time-for-policywejście również zostać zmienione (odznaczone, lub ustawione na „false”) gsettings set org.gnome.settings-daemon.plugins.power use-time-for-policy false. Ale to nie wydaje się działać na pewno na wszystkich systemach / maszynach.
1

Miałem ten problem.

Byłem bardzo sfrustrowany za każdym razem, gdy mój komputer się wyłączał, podczas gdy wykonywałem poważną pracę.

Napisałem skrypt, aby sprawdzać stan zasilania klimatyzacji co dwie minuty i hibernować, gdy nastąpi zanik zasilania. Zmodyfikuj odpowiednio do stanu baterii. Moja bateria może działać przez dwie minuty po zaniku zasilania sieciowego.

#!/bin/bash

if [[ $(cat /sys/class/power_supply/AC0/online) == *0* ]] ; then

    echo 'On battery power'
    #pmi action suspend

    dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Suspend

#else
#    echo 'On Ac Power'
fi

Umieszczam skrypt w pliku o nazwie powerMon.shi ustawiam go jako cron joburuchamiany co dwie minuty.

nyxee
źródło
1

W dniu 12.04 sleepdzawieszałem maszynę, gdy bateria była rozładowana lub maszyna była bezczynna.

Chociaż sleepd nie jest spakowany dla Ubuntu 14.04, a nawet został osierocony przez jego programistę, można go skompilować i zainstalować samodzielnie.

Instalacja na Ubuntu 12.04:

sudo apt-get install sleepd

Edytuj plik /etc/default/sleepdi ustaw następujące opcje:

# -E       Do not poll events (since they weren't working for me).
# -c 60    Poll every 60 seconds.
# -u 900   Sleep after 15 minutes idle time when on battery,
# -U 3600  or 60 minutes when on AC power,
# -b 3     or when battery power drops below 3%.
# -H       (optional) Use upower instead of ACPI.

PARAMS="-E -c 60 -u 900 -U 3600 -b 3"

Następnie uruchom ponownie demona:

sudo service sleepd restart

Ma również opcje, aby nie zasnąć, jeśli jest aktywność sieci, ale te przestały działać dla mnie.

Na moim komputerze, najwyraźniej ACPI nie zawsze poprawnie raportowało temperaturę, więc musiałem dodać, -Haby uśpić, aby odczytał temperaturę z góry zamiast z ACPI. Odkryłem nieprawidłowe odczyty po nieoczekiwanych wydatkach, dodając -vi oglądając plik dziennika za pomocą tail -f /var/log/*log | grep --line-buffered sleepd.

(Miałem dziwny błąd na jednym laptopie z 12.04, że maszyna budzi się ponownie natychmiast po zawieszeniu, ale tylko wtedy, gdy uśpienie wstrzymuje się z powodu niskiego poziomu naładowania baterii, a nie z powodu bezczynności. Mam nadzieję, że nie będziesz miał tego doświadczenia! Problem nigdy nie zdarzył się przed 14.04.)

joeytwiddle
źródło
0

Istnieje sposób na całkowite wyłączenie zawieszenia / wyłączenia zasilania.

gsettings set org.gnome.settings-daemon.plugins.power critical-battery-action 'false'

(w przypadku gdy jest krytycznie niski nawet na 100%)

Rápli András
źródło
0

Napisałem prosty skrypt bash, który zrobi to na dowolnym Linuksie ... po prostu dodaj ten skrypt do uruchamiania ... co dwie minuty skrypt sprawdza stan baterii i zawiesza się, jeśli bateria spadnie poniżej 11% ...

#!/bin/sh
flag=0
while [ 1 ]; do
  var=$(upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "percentage"| grep -o '[0-9]*')
  if [ $var -lt 11 ] && [ $flag -eq 0 ]; then
    systemctl suspend
    flag=1
  elif [ $var -gt 11 ] && [ $flag -eq 1 ]; then
    flag=0
  fi
  sleep 120
done
Pankaj Kumar
źródło