ฉันพยายามประหยัดพลังงานด้วยการสลับเดสก์ท็อปไปที่โหมด Suspend เมื่อไม่ได้ใช้งาน แต่เจ้าของเดสก์ท็อปจำนวนมากเข้าถึงได้ผ่าน SSH มีวิธีแก้ไขปัญหา wakeonlan เพื่อให้เจ้าของสามารถเปิดเครื่องได้ แต่ปัญหาคือเครื่องจะหยุดการทำงานอัตโนมัติอีกครั้งใน 10 นาทีแม้ว่าการเชื่อมต่อ SSH จะเปิดอยู่
สิ่งที่ฉันพยายามทำคือการรวมเซสชัน SSH ที่ใช้งานอยู่ในคำจำกัดความ "กิจกรรม"
คำถามนั้นสามารถทำได้ผ่านการตั้งค่ากฎ polkit? มันสามารถทำได้ผ่านการวางสคริปต์ที่ทำงานก่อนที่จะระงับจริงและยกเลิกถ้าพบเซสชัน SSH? ฉันต้องการวิธีที่ถูกต้องในการทำสิ่งนี้ ถ้าไม่เช่นนั้นวิธีแฮ็กก็ยินดีต้อนรับ
โซลูชันแฮ็คที่ไร้เดียงสาปัจจุบัน: แก้ไข/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
สิ่งนี้มีวัตถุประสงค์ แต่ฉันไม่รู้ว่าการอัปเดตจะเขียนทับไฟล์/usr/sbin/pm-suspend
หรือไม่ ฉันยังไม่รู้ด้วยซ้ำว่าวิธีนี้จะทำงานกับการหยุดใช้งานชั่วคราวอื่น ๆ เช่น tuxonice ได้อย่างไร
[
ถ้าคุณเขียนif who | grep -qv :0; then
(สมมติว่าคุณมี POSIX สอดคล้องgrep
เช่น GNU grep)
grep -cv :0
แทนที่จะผ่านได้wc
ไหม