1. Sử dụng giao diện đồ họa (GNOME Settings)
Đối với người dùng máy tính để bàn, cách nhanh nhất là điều chỉnh trực tiếp trong phần cài đặt của GNOME. Phương pháp này phù hợp để kiểm soát hành vi của hệ thống khi ở trạng thái rảnh.
- Mở menu hệ thống ở góc trên bên phải và chọn Settings (Cài đặt).
- Điều hướng đến mục Power (Điện năng) ở danh sách bên trái.
- Tại phần Power Saving Options, tìm mục Screen Blank và chuyển về trạng thái Never.
- Trong phần Suspend & Power Button, tắt tùy chọn Automatic Suspend cho cả hai chế độ "On Battery" (Sử dụng pin) và "Plugged In" (Cắm sạc).
2. Vô hiệu hóa ở cấp độ Systemd Targets
Để ngăn chặn triệt để khả năng hệ thống đi vào trạng thái ngủ (sleep, suspend, hibernate) ở cấp độ nhân, bạn có thể thực hiện "mask" các mục tiêu của systemd. Đây là phương pháp mạnh mẽ nhất, thường được áp dụng cho các máy chủ (Server).
# Vô hiệu hóa các chế độ ngủ và sáp nhập
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Sau khi chạy lệnh trên, ngay cả khi bạn nhấn nút nguồn hoặc gập nắp máy tính, hệ thống cũng sẽ không thực hiện lệnh suspend. Để khôi phục lại trạng thái ban đầu, bạn chỉ cần thay lệnh mask bằng unmask:
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
3. Cấu hình file logind.conf
Dịch vụ systemd-logind chịu trách nhiệm xử lý các sự kiện vật lý như gập màn hình hoặc nhấn nút nguồn. Việc chỉnh sửa file cấu hình này sẽ giúp máy tính vẫn hoạt động ổn định khi gập nắp máy.
# Mở file cấu hình bằng trình chỉnh sửa nano
sudo nano /etc/systemd/logind.conf
Tìm và thay đổi các tham số sau (xóa dấu # ở đầu dòng nếu có):
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
HandleSuspendKey=ignore
HandleHibernateKey=ignore
Sau khi lưu file (Ctrl+O, Enter) và thoát (Ctrl+X), hãy khởi động lại dịch vụ để áp dụng thay đổi ngay lập tức:
sudo systemctl restart systemd-logind
4. Sử dụng công cụ dòng lệnh gsettings
Nếu bạn đang làm việc từ xa qua SSH hoặc muốn tạo script tự động hóa cho môi trường desktop, gsettings là lựa chọn tối ưu để can thiệp vào cấu hình GNOME mà không cần mở giao diện.
# Thiết lập thời gian chờ để tự động suspend là 0 (nghĩa là không bao giờ)
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0
# Đảm bảo kiểu hành động khi không hoạt động là 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
5. Tạo Service ngăn chặn Suspend thủ công
Bạn có thể tạo một đơn vị dịch vụ systemd tùy chỉnh để duy trì trạng thái thức của hệ thống bằng công cụ systemd-inhibit.
# Tạo file service mới
sudo nano /etc/systemd/system/keep-awake.service
Dán nội dung sau vào file:
[Unit]
Description=Service to prevent system sleep
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/systemd-inhibit --why="Server workload" --what=sleep /bin/sleep infinity
Restart=always
[Install]
WantedBy=multi-user.target
Kích hoạt và chạy dịch vụ:
sudo systemctl daemon-reload
sudo systemctl enable --now keep-awake.service