рд▓реИрдкрдЯреЙрдк рдХреЗ рдврдХреНрдХрди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдФрд░ рдмрд┐рдирд╛ рдиреАрдВрдж рдХреЗ рд╕реНрдХреНрд░реАрди рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдкрд░ рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдореИрдВ рдЕрдкрдиреЗ рдШрд░ рдХреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рд▓реНрдпреВрдмреБрдиреНрдЯреВ 18.04 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдПрдХ рдареАрдХ рджрд┐рди, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рд▓реИрдкрдЯреЙрдк рдХреЗ рдврдХреНрдХрди рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╕рдордп рдкрд╛рд╡рд░ рдореИрдиреЗрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рдерд╛ред рдЬрдм рдореИрдВрдиреЗ рд▓реИрдкрдЯреЙрдк рдХрд╛ рдврдХреНрдХрди рдмрдВрдж рдХрд┐рдпрд╛, рддреЛ рдореИрдВ рд╕реНрдХреНрд░реАрди рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд▓реИрдкрдЯреЙрдк рдХреЛ рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рдХреЗ рд▓рд┐рдП рднреЗрдЬ рджрд┐рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдкрдЯрдХрдерд╛ рд▓рд┐рдЦреА рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЬрд▓реНрджрдмрд╛рдЬреА рдХреАред

рдореИрдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред

рдкрд╣рд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рдмреЙрдХреНрд╕ рд╕реЗ рд▓реЙрдмрдВрдЯ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

UUID рд╕реНрд╡реИрдк рдвреВрдВрдвреЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

grep swap /etc/fstab

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

# swap was on /dev/mmcblk0p2 during installation
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none            swap    sw              0       0

рдлрд┐рд░ рдЖрдкрдХреЛ UUID рдХреЛ рдХрд░реНрдиреЗрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ / etc / default / grub рдХреЛ "GRUB_CMDLINE_LINUX_DEFAULT" рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ = UUID =% рдЕрдкрдиреЗ UUID% рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...

рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

sudo update-grub

рдЕрдм рд╣рд╛рдЗрдмрд░рдиреЗрд╢рди рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

sudo systemctl hibernate

рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рд▓реИрдкрдЯреЙрдк рдХреЛ рд╕реЛрдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдХреНрд░реАрди рдХреЛ рд░реВрдЯ рд╕реЗ рдХреИрд╕реЗ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореИрдВрдиреЗ рдЗрд╕реЗ dbus-send рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛, рдХрдорд╛рдВрдб рд╕реНрд╡рдпрдВ рдиреАрдЪреЗ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

рдЕрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред

рдкрд╛рд╡рд░ рдореИрдиреЗрдЬрд░ рдореЗрдВ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреА рд╣реИ рд╡рд╣ рд╣реИ рдХрд┐ рдХрд╡рд░ рдмрдВрдж рдХрд░рддреЗ рд╕рдордп рдПрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдСрдл рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЯрдХрд░рд╛рд╡ рди рд╣реЛред

рдЫрд╡рд┐

рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ / etc / acpi / рдШрдЯрдирд╛рдУрдВ / рд▓реИрдкрдЯреЙрдк-рдврдХреНрдХрди рдмрдирд╛рдПрдБ:

event=button/lid.*
action=/etc/acpi/laptop-lid.sh

рдФрд░ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ /etc/acpi/laptop-lid.sh рдмрдирд╛рдПрдВ:

#!/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

рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рддреЗ рд╣реИрдВ:

sudo chmod a+x /etc/acpi/laptop-lid.sh

рдФрд░ acpid рдбреЗрдореЙрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рд╣реЛрдВ:

sudo systemctl restart acpid.service

рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

  • lxsessin => рд╕реВрдХреНрддрд┐-рд╕рддреНрд░
  • org.freedesktop.ScreenSaver => org.gnome.ScreenSaver

All Articles