Etkin olmadıklarında masaüstü bilgisayarları askıya alma moduna geçirerek güç tasarrufu yapmaya çalışıyorum. Ancak birçok masaüstüne SSH aracılığıyla sahipleri tarafından erişilir. Sahiplerin makineyi açmasını sağlamak için dağıtılmış bir wakeonlan çözümü var, ancak sorun, SSH bağlantısı açık olsa bile makinelerin 10 dakika içinde otomatik olarak askıya alınması.
Ne yapmaya çalışıyorum aktif SSH oturumları "aktivite" tanımlarına dahil etmektir.
Soru, bir polkit kuralı yapılarak yapılabilir mi? Gerçek askıya alınmadan önce çalışan ve SSH oturumları bulunursa iptal edilen bir komut dosyası koyarak yapılabilir mi? Bunu yapmanın temiz ve yasal bir yoluna ihtiyacım var. Değilse, o zaman hacky yolları da kabul edilir.
Mevcut saf hacky çözümü: düzenlemek /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
Bu amaca hizmet eder. Ancak bir güncellemenin dosyanın üzerine ne zaman yazılacağını bilmiyorum /usr/sbin/pm-suspend
. Bunun smokinice gibi diğer askıya alma uygulamalarıyla nasıl çalışacağını da bilmiyorum.
[
yazarsanız if who | grep -qv :0; then
(bir POSIX uyumlu varsayarak grep
GNU grep gibi).
grep -cv :0
yerine kullanmayı önerebilir miyimwc
?