Tôi đang cố gắng tiết kiệm năng lượng bằng cách chuyển máy tính để bàn sang chế độ treo khi chúng không hoạt động. Nhưng nhiều máy tính để bàn cũng được truy cập thông qua SSH bởi chủ sở hữu của họ. Có một giải pháp Wakeonlan được triển khai để cho phép chủ sở hữu bật máy, nhưng vấn đề là máy sẽ tự động treo lại sau 10 phút, ngay cả khi kết nối SSH được bật.
Những gì tôi đang cố gắng làm là bao gồm các phiên SSH hoạt động trong định nghĩa "hoạt động".
Câu hỏi là nó có thể được thực hiện thông qua việc thiết lập quy tắc polkit không? Nó có thể được thực hiện thông qua việc đặt một tập lệnh chạy trước khi tạm ngưng thực tế và hủy bỏ nó nếu các phiên SSH được tìm thấy không? Tôi cần một cách hợp pháp sạch sẽ để làm điều này. Nếu không, thì cách hacky cũng được hoan nghênh.
Giải pháp hacky ngây thơ hiện tại: chỉnh sửa /usr/sbin/pm-suspend
:
#check for SSH sessions, and prevent suspending:
if [ "$(who | grep -cv "(:")" -gt 0 ]; then
echo "SSH session(s) are on. Not suspending."
exit 1
fi
Điều này phục vụ mục đích. Nhưng tôi không biết khi nào bản cập nhật sẽ ghi đè lên tệp /usr/sbin/pm-suspend
. Tôi cũng không biết làm thế nào điều này sẽ làm việc với các triển khai đình chỉ khác như tuxonice.
[
nếu bạn viết if who | grep -qv :0; then
(giả sử bạn có POSIX tuân thủ grep
như GNU grep).
grep -cv :0
thay vì đi quawc
?