Tùy chọn tốt hơn là làm theo lời khuyên trong nhận xét (thử xem điều gì đã thất bại khi bạn đóng nắp).
Là một giải pháp thay thế hoặc mạng an toàn, bạn có thể sử dụng tập lệnh chạy ở chế độ nền, một cái gì đó giống như tập lệnh này, phụ thuộc vào gói lm-sensors
được cài đặt:
#! /bin/bash
while true; do
t=$(sensors | grep temp1 | awk '{print $2}' | sed 's/\..*$//')
if (( $t > 95 )); then # max temp in whichever units your sensors outputs
echo High temp $t
#sudo /usr/sbin/pm-suspend # uncomment after testing.
fi
sleep 60
done
Bạn phải thay đổi temp1
thành một cái gì đó có liên quan cho bạn (nhìn vào đầu ra của lệnh sensors
trong một thiết bị đầu cuối). Trong trường hợp của tôi, đó là:
(0)asus-romano:/etc% sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +61.0°C (crit = +98.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +46.0°C (crit = +100.0°C)
... Và tôi muốn kiểm tra temp1
. Bạn phải đặt một chuỗi có thể chỉ chọn dòng bạn thích, để đường ống trong $(..)
đầu ra chỉ có số nhiệt độ. Bạn có thể kiểm tra nó bằng tay trong thiết bị đầu cuối:
(0)asus-romano:/etc% sensors | grep temp1 | awk '{print $2}' | sed 's/\..*$//'
+61
Để có thể thực hiện việc tắt nguồn với sudo mà không bị yêu cầu nhập mật khẩu, bạn có thể thêm một tệp vào thư mục /etc/sudoers.d
:
(1)asus-romano:/etc% sudo cat /etc/sudoers.d/power-off
romano ALL=NOPASSWD: /usr/sbin/pm-suspend
romano ALL=NOPASSWD: /sbin/poweroff
(thích ứng với người dùng của bạn, rõ ràng --- lưu ý rằng nội dung tệp chỉ là hai dòng cuối cùng. Tên của tệp không liên quan, xem thêm tại đây ) --- bây giờ người dùng của bạn sẽ có quyền sử dụng hai lệnh này ( với sudo
) mà không được yêu cầu nhập mật khẩu.