ACPID£¨Advanced Configuration and Power Interface Daemon£©×÷Ϊ Linux Ï´¦ÀíµçÔ´¹ÜÀíʼþµÄºËÐÄ×é¼þ£¬°çÑÝמÙ×ãÇáÖØµÄ½ÇÉ«
Ëü²»½öÄܹ»¼àÌýºÍÏìÓ¦µçԴ״̬µÄ±ä»¯£¨Èç²åÈë»ò°Î³öµçÔ´ÊÊÅäÆ÷¡¢µç³ØµçÁ¿µÍ¾¯¸æµÈ£©£¬»¹Äܹ»´¥·¢ÏàÓ¦µÄ½Å±¾»ò²Ù×÷£¬ÒÔÓÅ»¯ÏµÍ³µÄµçԴʹÓÃЧÂÊ
±¾ÎĽ«ÉîÈë̽ÌÖ ACPID ÔÚ Linux ϵͳÖеÄÅäÖ÷½·¨£¬²¢Õ¹Ê¾ÈçºÎͨ¹ý¾«Ï¸µÄÅäÖÃÀ´ÌáÉýϵͳµÄµçÔ´¹ÜÀíÄÜÁ¦
Ò»¡¢ACPID ¼ò½éÓëÖØÒªÐÔ ACPID ÊÇ»ùÓÚ ACPI£¨Advanced Configuration and Power Interface£©¹æ·¶µÄÊØ»¤½ø³Ì£¬ÓÃÓÚÔÚ Linux ϵͳÉÏʵÏÖµçÔ´¹ÜÀíºÍʼþ´¦Àí
ACPI ÊÇÒ»ÖÖ¿ª·Å±ê×¼£¬Ö¼ÔÚÌṩ²Ù×÷ϵͳÓëÓ²¼þÖ®¼äµÄͳһ½Ó¿Ú£¬ÒÔ¹ÜÀíµçԴ״̬ºÍÓ²¼þÉ豸ÅäÖÃ
ͨ¹ý ACPID£¬Linux ϵͳÄܹ»Ê¶±ð²¢ÏìÓ¦¸÷ÖÖµçԴʼþ£¬È磺 - µçÔ´ÊÊÅäÆ÷²åÈë»ò°Î³ö - µç³ØµçÁ¿µÍ»ò³äÂú - ϵͳÐÝÃß»ò»½ÐÑ - Èȼüʼþ£¨ÈçÁÁ¶Èµ÷½Ú¡¢ÒôÁ¿¿ØÖÆ£© ÕýÈ·ÅäÖà ACPID ¶ÔÓÚÌá¸ß±Ê¼Ç±¾µçÄÔµÄµç³ØÐøº½ÄÜÁ¦¡¢ÓÅ»¯×ÀÃæµçÄԵĵçÔ´ÏûºÄÒÔ¼°È·±£·þÎñÆ÷µÄÎȶ¨ÔËÐоßÓÐÖØÒªÒâÒå
Ëü²»½öÄܹ»ÑÓ³¤µç³ØÊ¹ÓÃʱ¼ä£¬»¹ÄÜÔÚϵͳ½øÈëÐÝÃß»ò´ý»ú״̬ʱ±£»¤Êý¾Ý£¬±ÜÃâÒòµçԴͻȻÖжϵ¼ÖµÄÊý¾Ý¶ªÊ§
¶þ¡¢°²×° ACPID ÔÚ´ó¶àÊý Linux ·¢ÐаæÖУ¬ACPID ¿ÉÒÔͨ¹ý°ü¹ÜÀíÆ÷ÇáËɰ²×°
ÒÔÏÂÊÇһЩ³£¼û·¢ÐаæµÄ°²×°ÃüÁ - Debian/Ubuntu ϵÁУº`sudo apt-get installacpi` - Fedora/CentOS ϵÁУº`sudo yum install acpi` »ò`sudo dnf install acpi`£¨È¡¾öÓÚ°æ±¾£© - Arch Linux£º`sudo pacman -Sacpi` °²×°Íê³Éºó£¬Í¨³£ÐèÒªÆô¶¯ ACPID ·þÎñ£¬²¢ÉèÖÃÆäÔÚϵͳÆô¶¯Ê±×Ô¶¯ÔËÐÐ
Õâ¿ÉÒÔͨ¹ý systemctl ÃüÁîÍê³É£º sudo systemctl start acpid sudo systemctl enable acpid Èý¡¢ACPID ÅäÖûù´¡ ACPID µÄºËÐÄÅäÖÃÎļþͨ³£Î»ÓÚ `/etc/acpi/events/`ºÍ `/etc/acpi/actions/` Ŀ¼ÏÂ
`events` Ŀ¼°üº¬¼àÌýµçԴʼþµÄÅäÖÃÎļþ£¬¶ø `actions` Ŀ¼Ôò´æ·Åµ±Ê¼þ·¢ÉúʱִÐеĽű¾»òÃüÁî
1.ʼþÅäÖÃÎļþ£º ʼþÅäÖÃÎļþ¶¨ÒåÁË ACPID Ó¦¸Ã¼àÌýÄÄЩ ACPI ʼþ
ÀýÈ磬¼àÌýµçÔ´ÊÊÅäÆ÷²åÈëʼþµÄÎļþ¿ÉÄÜÈçÏ£º bash /etc/acpi/events/powerbtn-acpi-support event=button/power BN 00000080 00000001 action=/etc/acpi/actions/powerbtn.sh ÕâÀ`event` ÐÐÖ¸¶¨ÁËÒª¼àÌýµÄʼþÀàÐÍ£¨ÈçµçÔ´¼ü°´Ï£©£¬`action` ÐÐÖ¸¶¨Á˵±Ê¼þ·¢Éúʱµ÷ÓõĽű¾Â·¾¶
2.¶¯×÷½Å±¾£º ¶¯×÷½Å±¾¶¨ÒåÁ˵±Ìض¨Ê¼þ·¢ÉúʱϵͳӦִÐеIJÙ×÷
ÀýÈ磬һ¸ö¼òµ¥µÄµçÔ´¼ü´¦Àí½Å±¾¿ÉÄÜÈçÏ£º bash !/bin/bash /sbin/shutdown -h now Õâ¸ö½Å±¾»áÔÚµçÔ´¼ü±»°´ÏÂʱÁ¢¼´¹Ø±Õϵͳ
ΪÁËÈ·±£½Å±¾¿ÉÒÔÖ´ÐУ¬ÐèҪΪÆäÌí¼ÓÖ´ÐÐȨÏÞ£º bash sudo chmod +x /etc/acpi/actions/powerbtn.sh ËÄ¡¢¸ß¼¶ÅäÖÃʾÀý ³ýÁË»ù±¾µÄµçÔ´°´Å¥´¦ÀíÍ⣬ACPID »¹¿ÉÒÔÅäÖøü¸´ÔӵĵçÔ´¹ÜÀí²ßÂÔ£¬Èç¸ù¾Ýµç³ØµçÁ¿µ÷ÕûϵͳÐÔÄÜ¡¢×Ô¶¯±£´æ¹¤×÷²¢ÔÚµçÁ¿µÍʱ½øÈëÐÝÃß״̬µÈ
1.µç³ØµçÁ¿µÍʱ֪ͨ²¢Ö´ÐвÙ×÷£º ¿ÉÒÔ±àдһ¸ö½Å±¾À´¼ì²éµç³ØµçÁ¿£¬²¢ÔÚµçÁ¿µÍÓÚij¸öãÐֵʱ·¢ËÍ֪ͨ²¢Ö´ÐÐÌØ¶¨²Ù×÷
ÀýÈ磬µ±µç³ØµçÁ¿µÍÓÚ 20% ʱ£¬ÏÔʾ֪ͨ²¢½µµÍÆÁÄ»ÁÁ¶È£º bash !/bin/bash BATTERY_LEVEL=$(acpi -V | grep -oP(?<=Battery¡¾0-9¡¿+:)¡¾0-9¡¿+%) if¡¾ $BATTERY_LEVEL -le 20 ¡¿; then notify-send BatteryLow! Your battery is below 20%. Please plug in the charger. xset s 50 50 ÉèÖÃÆÁÄ»±£»¤³ÌÐòÔÚ 50 Ãëºó¼¤»î£¬ÆÁÄ»¹Ø±ÕǰÔٵȴý 50 Ãë xset dpms 50 50 50 ½µµÍÏÔʾÆ÷ÁÁ¶ÈÖÁ 50% fi ½«´Ë½Å±¾±£´æÎª `/etc/acpi/actions/battery-low.sh`£¬²¢ÔÚÏàÓ¦µÄʼþÅäÖÃÎļþÖÐÒýÓÃËü
2.×Ô¶¯±£´æ¹¤×÷²¢½øÈëÐÝÃߣº ¶ÔÓڱʼDZ¾µçÄÔÓû§£¬µ±µç³ØµçÁ¿¼«µÍÇÒÎÞ·¨¼°Ê±³äµçʱ£¬×Ô¶¯±£´æµ±Ç°¹¤×÷²¢½øÈëÐÝÃß״̬¿ÉÒÔ×î´óÏ޶ȵؼõÉÙÊý¾Ý¶ªÊ§µÄ·çÏÕ
¿ÉÒÔͨ¹ýÒÔϽű¾ÊµÏÖÕâÒ»¹¦ÄÜ£º bash !/bin/bash BATTERY_LEVEL=$(acpi -V | grep -oP(?<=Battery¡¾0-9¡¿+:)¡¾0-9¡¿+%) if¡¾ $BATTERY_LEVEL -le 5¡¿; then # ¼ÙÉèÓÐÒ»¸öÃûΪsave_work.sh µÄ½Å±¾À´±£´æµ±Ç°¹¤×÷ /path/to/save_work.sh # ½øÈëÐÝÃß״̬ pm-hibernate fi ͬÑù£¬ÐèҪȷ±£¸Ã½Å±¾ÓÐÖ´ÐÐȨÏÞ£¬²¢ÔÚÊʵ±µÄʼþÅäÖÃÎļþÖÐÉèÖô¥·¢Ìõ¼þ
Îå¡¢µ÷ÊÔÓë¹ÊÕÏÅųý ÔÚÅäÖà ACPID ʱ£¬¿ÉÄÜ»áÓöµ½Ò»Ð©ÎÊÌ⣬Èçʼþ²»±»ÕýÈ·´¥·¢¡¢½Å±¾Ö´ÐÐʧ°ÜµÈ
ÒÔÏÂÊÇһЩ³£Óõĵ÷ÊÔ¼¼ÇÉ£º - ²é¿´ ACPID ÈÕÖ¾£ºACPID µÄÈÕ־ͨ³£¼Ç¼ÔÚ `/var/log/syslog`»ò `/var/log/messages` ÖУ¬¿ÉÒÔͨ¹ý `grep` ÃüÁî¹ýÂËÏà¹ØÈÕÖ¾ÐÅÏ¢£º bash grep acpid /var/log/syslog - ÊÖ¶¯²âÊԽű¾£ºÔÚÅäÖÃнű¾ºó£¬¿ÉÒÔÊÖ¶¯ÔËÐÐËüÒÔÈ·±£½Å±¾±¾ÉíûÓдíÎó
- ¼ì²éȨÏÞ£ºÈ·±£ËùÓнű¾ºÍÅäÖÃÎļþ¶¼ÓÐÕýÈ·µÄȨÏÞÉèÖã¬ÌرðÊÇÖ´ÐÐȨÏÞ
- ²é¿´ ACPID ״̬£ºÊ¹Óà `systemctl status acpid` ²é¿´ ACPID ·þÎñµÄÔËÐÐ״̬£¬È·±£ËüÕýÔÚÔËÐÐÇÒûÓдíÎó
Áù¡¢½áÂÛ Í¨¹ý¾«Ï¸ÅäÖà ACPID£¬Linux ϵͳÄܹ»ÊµÏÖ¸ßЧµÄµçÔ´¹ÜÀí£¬²»½öÌáÉýÁËµç³ØÐøº½ÄÜÁ¦£¬»¹ÔöÇ¿ÁËϵͳµÄÎȶ¨ÐԺͰ²È«ÐÔ
´Ó»ù±¾µÄµçÔ´°´Å¥´¦Àíµ½¸´ÔÓµÄµç³ØµçÁ¿¹ÜÀí²ßÂÔ£¬ACPID ÌṩÁ˷ḻµÄ¹¦ÄܺÍÁé»îµÄÅäÖÃÑ¡ÏʹµÃÓû§¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÇó¶¨ÖƵçÔ´¹ÜÀíÐÐΪ
ËäÈ»ÅäÖùý³Ì¿ÉÄÜÉæ¼°Ò»Ð©¼¼Êõϸ½Ú£¬µ«Í¨¹ý±¾ÎĵĽéÉܺÍʾÀý£¬ÏàÐŶÁÕßÒÑ¾ÕÆÎÕÁË ACPID ÅäÖõĻù±¾·½·¨ºÍ¸ß¼¶¼¼ÇÉ£¬Äܹ»ÔÚ×Ô¼ºµÄ Linux ϵͳÉÏʵÏÖ¸ü¼ÓÖÇÄܺ͸ßЧµÄµçÔ´¹ÜÀí