Lệnh acpid trong linux với các ví dụ dễ hiểu

Lệnh acpid trong Linux là một daemon quản lý các sự kiện ACPI (Advanced Configuration and Power Interface) từ phần cứng. Nó cho phép hệ thống phản ứng với các sự kiện như đóng nắp máy tính xách tay hoặc nhấn nút nguồn một cách linh hoạt. Nhờ lệnh acpid trong linux, hệ thống có thể thực hiện các hành động tùy chỉnh, giúp tiết kiệm năng lượng và tăng trải nghiệm người dùng.

Lệnh acpid trong linux là gì?

Command acpid in linux là một daemon (tiến trình chạy nền) lắng nghe các sự kiện ACPI (Advanced Configuration and Power Interface) từ kernel. Nó cho phép hệ thống phản ứng với các sự kiện như đóng nắp laptop, nhấn nút nguồn, hoặc thay đổi trạng thái pin. Acpid sử dụng các file cấu hình để xác định hành động cần thực hiện khi một sự kiện ACPI cụ thể xảy ra, ví dụ như tắt máy hoặc chuyển sang chế độ ngủ. Nhờ có acpid, hệ thống Linux có thể quản lý năng lượng hiệu quả hơn và phản ứng linh hoạt với các tương tác của người dùng. Bạn có thể tùy chỉnh các file cấu hình để điều chỉnh hành vi của acpid theo nhu cầu sử dụng của mình.

Tìm hiểu lệnh acpid và mục đích của nó

Trong bước này, chúng ta sẽ khám phá lệnh acpid (Advanced Configuration and Power Interface daemon) và hiểu rõ mục đích của nó trong hệ thống Linux.

Lệnh acpid là một daemon lắng nghe các sự kiện ACPI và thực thi các script để phản hồi những sự kiện đó. ACPI (Advanced Configuration and Power Interface) là một tiêu chuẩn định nghĩa cách hệ điều hành tương tác với phần cứng, đặc biệt trong quản lý năng lượng và kiểm soát nhiệt.

Daemon acpid chịu trách nhiệm giám sát và phản hồi các sự kiện liên quan đến nguồn điện, ví dụ như đóng nắp laptop, hệ thống tạm ngưng/khôi phục và nhấn nút nguồn. Nó cho phép bạn tùy chỉnh hành vi của hệ thống dựa trên các sự kiện này.

Hãy bắt đầu bằng cách kiểm tra trạng thái của dịch vụ acpid:

sudo systemctl status acpid

Ví dụ về đầu ra:

● acpid.service - ACPI Event Daemon
     Loaded: loaded (/lib/systemd/system/acpid.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-04-24 12:34:56 UTC; 1 day 2h ago
   Main PID: 456 (acpid)
     Tasks: 1 (limit: 4915)
    Memory: 1.1M
    CGroup: /system.slice/acpid.service
            └─456 /usr/sbin/acpid -c /etc/acpi/events -s /var/run/acpid.socket

Đầu ra cho thấy dịch vụ acpid đang chạy và được kích hoạt để tự động khởi động khi hệ thống khởi động.

Tiếp theo, hãy khám phá các trình xử lý sự kiện mặc định được cung cấp bởi dịch vụ acpid. Các trình xử lý sự kiện được định nghĩa trong thư mục /etc/acpi/events/:

ls -l /etc/acpi/events/

Ví dụ về đầu ra:

-rw-r--r-- 1 root root 75 Apr 24 12:34 default
-rw-r--r-- 1 root root 75 Apr 24 12:34 power-button

Các trình xử lý sự kiện defaultpower-button được cung cấp mặc định. Bạn có thể tùy chỉnh các trình xử lý sự kiện này hoặc tạo các trình xử lý mới để phù hợp với nhu cầu cụ thể của bạn.

Bây giờ, hãy xem nội dung của trình xử lý sự kiện power-button:

cat /etc/acpi/events/power-button

Ví dụ về đầu ra:

event=button/power.*
action=/etc/acpi/actions/power-button.sh

Trình xử lý sự kiện này chỉ định rằng khi nút nguồn được nhấn, script /etc/acpi/actions/power-button.sh sẽ được thực thi.

Trong bước tiếp theo, chúng ta sẽ tìm hiểu cách cấu hình acpid để giám sát các sự kiện nguồn và tạo các trình xử lý sự kiện tùy chỉnh.

Cấu hình acpid để theo dõi các sự kiện nguồn

Trong bước này, chúng ta sẽ cấu hình daemon acpid để theo dõi các sự kiện nguồn và tạo trình xử lý sự kiện tùy chỉnh.

Đầu tiên, hãy tạo một trình xử lý sự kiện mới để theo dõi sự kiện đóng nắp laptop:

sudo nano /etc/acpi/events/lid-close

Thêm nội dung sau vào file:

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

Trình xử lý sự kiện này sẽ thực thi script /etc/acpi/actions/lid-close.sh khi nắp laptop được đóng.

Tiếp theo, tạo script lid-close.sh:

sudo nano /etc/acpi/actions/lid-close.sh

Thêm nội dung sau vào script:

#!/bin/bash
logger "Laptop lid closed, suspending system..."
/usr/sbin/pm-suspend

Script này ghi một thông báo vào system log và sau đó tạm dừng hệ thống khi nắp laptop đóng.

Hãy cấp quyền thực thi cho script:

sudo chmod +x /etc/acpi/actions/lid-close.sh

Bây giờ, hãy kiểm tra trình xử lý sự kiện lid-close bằng cách đóng nắp laptop. Bạn sẽ thấy hệ thống tạm dừng sau vài giây.

Để tiếp tục sử dụng hệ thống, chỉ cần mở nắp laptop.

Tạo Trình Xử Lý Sự Kiện acpid Tùy Chỉnh

Trong bước cuối cùng này, chúng ta sẽ tạo một trình xử lý sự kiện acpid tùy chỉnh để minh họa cách bạn có thể mở rộng chức năng của acpid daemon.

Hãy tạo một trình xử lý sự kiện mới để theo dõi mức pin và thực hiện một hành động khi pin xuống dưới một ngưỡng nhất định.

Đầu tiên, hãy tạo tệp trình xử lý sự kiện:

sudo nano /etc/acpi/events/low-battery

Thêm nội dung sau vào tệp:

event=battery.*
action=/etc/acpi/actions/low-battery.sh

Trình xử lý sự kiện này sẽ thực thi script /etc/acpi/actions/low-battery.sh bất cứ khi nào mức pin thay đổi.

Tiếp theo, tạo script low-battery.sh:

sudo nano /etc/acpi/actions/low-battery.sh

Thêm nội dung sau vào script:

#!/bin/bash

BATTERY_LEVEL=$(acpi -b | grep -P -o '[0-9]+%' | head -n 1 | sed 's/%//')

if [ "$BATTERY_LEVEL" -lt 20 ]; then
  logger "Battery level below 20%, sending notification..."
  notify-send "Low Battery" "Battery level is below 20%."
fi

Script này kiểm tra mức pin hiện tại bằng lệnh acpi. Nếu mức pin dưới 20%, nó sẽ ghi một thông báo vào system log và gửi một thông báo trên desktop.

Làm cho script có thể thực thi:

sudo chmod +x /etc/acpi/actions/low-battery.sh

Bây giờ, hãy kiểm tra trình xử lý sự kiện low-battery bằng cách xả pin trên máy tính xách tay của bạn. Khi mức pin xuống dưới 20%, bạn sẽ thấy thông báo xuất hiện trên desktop.

Kết luận cho linux acpid command

Tóm lại, acpid là một công cụ mạnh mẽ giúp hệ thống Linux của bạn quản lý năng lượng hiệu quả hơn. Nó cho phép máy tính phản ứng với các sự kiện phần cứng như đóng nắp laptop hoặc nhấn nút nguồn. Việc cấu hình acpid có thể hơi phức tạp lúc ban đầu, nhưng nó đáng giá để tiết kiệm pin và kéo dài tuổi thọ phần cứng. Hãy nhớ rằng, việc tìm hiểu kỹ tài liệu và thử nghiệm các cấu hình khác nhau là chìa khóa để làm chủ linux acpid command. Với một chút kiên nhẫn, bạn sẽ có thể tận dụng tối đa khả năng quản lý năng lượng của hệ thống Linux. Hy vọng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan hữu ích về acpid và cách sử dụng nó. Chúc bạn thành công trong việc tối ưu hóa hệ thống của mình!

Last Updated : 17/10/2025