Salama daholo. Mampiasa Lubuntu 18.04 amin'ny solosaina finday ao an-trano aho. Indray andro dia nanapa-kevitra aho fa tsy afa-po tamin'ny hetsika natolotry ny Power Manager rehefa nanidy ny saron'ny solosaina finday. Te-hihidy ny ecran aho rehefa manidy ny saron'ny solosaina finday ary rehefa afaka kelikely dia alefaso any amin'ny hibernation ny solosaina. Nanoratra script ho an'ity aho ary haingana hizara izany aminareo.
Nisedra olana roa aho.
Voalohany, tsy mandeha ivelan'ny boaty ao amin'ny Lubunta ny hibernation; Mba ahafahana manao izany dia mila manao izao manaraka izao ianao.
Tadiavo ny swap UUID, mba hanaovana izany dia mila mihazakazaka ianao:
grep swap /etc/fstab
Amin'ny tranga misy ahy, ny vokatra dia izao:
# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Avy eo dia mila manampy ny UUID amin'ny mari-pamantarana fanombohana kernel ianao. Mba hanaovana izany, ampio resume = UUID =% ny UUID% amin'ny tsipika "GRUB_CMDLINE_LINUX_DEFAULT" ao amin'ny rakitra /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
Ary araho ny baiko:
sudo update-grub
Tokony hiasa izao ny hibernation, mba hanamarinana fa afaka mihazakazaka ianao:
sudo systemctl hibernate
Ny olana faharoa dia ny fomba hanidiana ny efijerin'ny mpampiasa ho faka nefa tsy mandefa ny solosaina findainy hatory. Namaha azy io aho tamin'ny fampiasana dbus-send, ny baiko dia ao amin'ny script etsy ambany. Raha misy mahafantatra safidy hafa dia manorata ao amin'ny fanehoan-kevitra
Andeha isika hanomboka hanoratra ny script.
Ny zavatra voalohany tokony hataontsika ao amin'ny Power Manager dia ny fisafidianana ny Atsaharo ny fampisehoana ho toy ny hetsika rehefa manidy ny sarom-bilany, mba tsy hisy fifandirana amin'ny scripty.
Avy eo dia mamorona rakitra /etc/acpi/events/laptop-lid miaraka amin'ity atiny manaraka ity:
event=button/lid.*
action=/etc/acpi/laptop-lid.sh
ary mamorona script /etc/acpi/laptop-lid.sh miaraka amin'ity atiny manaraka ity:
#!/bin/bash
#set variables
#ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ BUS Π°Π΄ΡΠ΅Ρ ΠΈΠ· environ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° lxsession
BUS=$(grep -z DBUS_SESSION_BUS_ADDRESS
/proc/$(pidof -s lxsession)/environ |
sed 's/DBUS_SESSION_BUS_ADDRESS=//g')
#ΠΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ·Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ
USER=$(grep -z USER /proc/$(pidof -s lxsession)/environ | sed 's/USER=//g')
#ΠΏΡΡΡ Π΄ΠΎ ΡΡΠ΅ΠΉΡ ΡΠ°ΠΉΠ»Π° ΠΊΡΡΡΠΊΠΈ Π½ΠΎΡΡΠ±ΡΠΊΠ°
LID="/proc/acpi/button/lid/LID0/state"
#Check lid state (return 0 if closed)
check_lid () {
grep -q closed $LID
}
#Lock screen without sleep
check_lid
if [ $? = 0 ]
then
#TODO run command as root
sudo -u $USER -E dbus-send --bus=$BUS
--type=method_call
--dest="org.freedesktop.ScreenSaver"
"/org/freedesktop/ScreenSaver"
org.freedesktop.ScreenSaver.Lock
fi
#Wait 10 minutes and hibernate if lid is closed
sleep 600
check_lid
if [ $? = 0 ]
then
systemctl hibernate
fi
Ny fanaovana ny script ho executable:
sudo chmod a+x /etc/acpi/laptop-lid.sh
Ary avereno indray ny daemon acpid mba hampiharana ny fanovana:
sudo systemctl restart acpid.service
Ny zavatra rehetra vonona.
Ho an'ny Gnome ao amin'ny script dia mila ovaina ianao:
- lxsessin => gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver
Source: www.habr.com