데스크탑이 비활성 상태 일 때 데스크탑을 일시 중단 모드로 전환하여 전력을 절약하려고합니다. 그러나 많은 데스크탑은 소유자가 SSH를 통해 액세스합니다. 소유자가 머신을 켤 수 있도록 wakeonlan 솔루션이 배치되어 있지만 SSH 연결이 켜져 있어도 머신이 10 분 후에 다시 자동 일시 중단됩니다.
내가하려는 것은 "활동"정의에 활성 SSH 세션을 포함시키는 것입니다.
문제는 폴킷 규칙을 설정하여 수행 할 수 있습니까? 실제 일시 중단 전에 실행되는 스크립트를 넣고 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
grep
grep -cv :0
통과 하는 대신 사용 하는 것이 좋습니다wc
.