OS X : ssh 세션 중에 컴퓨터를 잠자 지 않게하는 방법


29

내가하면 ssh를OS X의 내 네트워크에있는 컴 될 때까지 세션이 지속 OS X가 들어가는 절전 모드.

마우스를 물리적으로 부딪 히거나 키를 입력하거나 수동으로 절전 기능을 비활성화하는 것과는 별도로 SSH 세션 중에 이러한 상황이 발생하지 않도록하는 방법이 있습니까?

편집 : ssh 세션은 일반적으로 간단한 sshfs 마운트입니다.


SSH 세션 전에 잠자기 상태를 방지하고 싶지 않습니까?
SamB

답변:


9

이것은 즉시 사용 가능한 솔루션은 아니지만 다른 사람이 솔루션을 찾지 못하면 작동합니다 :-)

명령을 사용하여 전원 관리 설정을 조작 할 수 있습니다 pmset. 자세한 내용은 맨 페이지 를 참조하십시오 .

우리가 조작하고 싶은 흥미로운 설정은 sleep입니다 .

sleep-시스템 절전 타이머 (분 단위의 값 또는 비활성화하려면 0)

따라서 다음 명령을 사용할 수 있습니다.

sudo pmset sleep 25      # go to sleep after 25 minutes
sudo pmset sleep 0       # disable sleep

이제 로그인 및 로그 아웃 후에이 명령을 트리거해야합니다. 이 권한을 기억하면 Bash는 Mac OS X의 기본 셸로 다음 두 파일을 제공합니다.

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bash_logout
          The individual login shell cleanup file, executed when a login shell exits

홈 디렉토리에서이를 편집하거나 작성하고 적절한 명령을 추가하십시오. 원하는 경우 현재 절전 값을 임시 파일에 저장 한 후 나중에 복원하십시오.

해결해야 할 마지막 문제는 sudo의 비밀번호 프롬프트입니다. 사용자에게 비밀번호없이 pmset을 호출 할 수있는 권한을 부여하려면 sudoedit를 사용하여 / etc / sudoers를 편집하십시오. NOPASSWD태그 를 사용해야합니다 . 이것이 새로운 것이면 sudoers 매뉴얼을보십시오 .


1
ssh 연결이 sshfs 마운트 일 경우이 방법이 작동합니까?
Stefan

1
확실하지 않지만 sshfs가 로그인 쉘을 열 것이라고 생각하지 않으므로 sshfs에서는 작동하지 않습니다.
echox

9

Mac이 전원에 연결되어 있으면 SSH를 통해 Mac을 사용할 수 있습니다.

시스템 환경 설정, 에너지 절약, 디스플레이가 꺼져있을 때 컴퓨터가 자동으로 잠자 지 않도록 방지

Mac이 전원을 끄면 모든 것이 종료되므로 배터리 수명에 대해 걱정할 필요가 없습니다.


1
이 옵션은 macOS Sierra에서 쓸모가 없습니다. 이 설정에 관계없이 iMac은 잠자기 상태가되고 SSH 액세스가 활성화 된 다음 SSH 로그 아웃 직후에 잠자기 상태가됩니다. 정말 성가시다.
Bruno Philipe

이 답변은 마침내 Mojave iMac
n1000에서

6

pmset 유틸리티에 내장 된 OS X에는 원하는 작업을 수행 할 수있는 설정이 있습니다. 설정 및 함께 제공되는 설명 은 pmset맨 페이지를 확인하십시오 ttyskeepawake.

다음 명령은 아마도 당신이 원하는 것을 할 것입니다 :

sudo pmset -c ttyskeepawake 1

-c플래그이 설정 (UPS 배터리 또는 전원 대조적으로) 컴퓨터가 AC 전원으로 작동 할 때 특히 활성 및하게 ttyskeepawake 1방지하는 활성 TTY 세션 (아마도 원격 하나) 중에 자로부터 컴퓨터. 그것은 세션이 슬립 타이머 이상 비활성 상태 인 경우 잠을 허용하지만, 그 문제가 있다면, 아마 컴퓨터가 전혀 잠을 설정할 수 없습니다.


6

SSH를 사용하여 원격 OSX 시스템에서 쉘을 열고 SSH 세션 동안 쉘이 휴면 상태가되지 않도록하려면 다음을 수행하십시오.

$ ssh -t me@mymacbook caffeinate -i bash

5

Mac OS X 10.8부터는 caffeinate(8)명령 을 사용할 수 있어야합니다 .

시도하십시오 caffeinate -s ssh server.example.com.


9
OP가 원격 Mac (예 : ssh 서버)을 잠자기 상태로 유지하려고합니다 . 내가 실수하지 않는 한, 귀하의 예는 고객의 단말기에서 잠을 자지 못하게합니다.
Owen

3

나는 다음 스크립트를 추가했다 .bash_profile

if expr "$(ps -o comm= $PPID)" : '^sshd:' > /dev/null; then
  caffeinate -s $SHELL --login
  exit $?
fi

프로세스가 ssh 디먼의 직접 하위 인 경우 caffeinate (8) 명령을 통해 동일한 쉘을 실행 하여 ssh 세션 중에 시스템이 휴면 상태가되지 않도록하십시오.


2

Mac에 대한 웹 검색으로 잠자기 방지 기능 은 사용할 수있는 유틸리티 및 유용한 정보에 대한 많은 정보를 제공합니다.

그러나 상황에 따라 실제로 원하는 것은 Mac이 잠자 지 못하게하는 매우 간단한 명령 줄 프로그램을 실행하는 별도의 ssh 세션을 갖는 것입니다. Apple은 기술 Q & A 1160 : 잠자기 방지 에 완전한 소스 코드를 제공합니다 . (안타깝게도이 페이지는 현재 Apple 사이트에서 손상되었지만 Google 캐시에서 사본을 가져올 수 있습니다.)

이 프로그램이 ssh 세션에서 성공적으로 실행될 수 있는지 테스트하지는 않았지만 가능한 것처럼 보입니다.

sshfs 구현은 일반적으로 항상 원격 시스템에 로그인 상태를 유지하지 않고 파일이나 디렉토리를 원할 때 세션을 실행합니다. 따라서 불면증 프로그램을 실행하려면 최소화 된 터미널 창에서 실행되는 별도의 ssh 세션이 필요합니다.

이 방법의 장점은 sudo를 사용하거나 시스템 전원 관리 설정을 망칠 필요가 없다는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.