bash 스크립트가 실행되는 동안 Mac을 잠자기 상태로 만든 다음 완료되면 정상적으로 잠자기 상태로 유지하십시오


13

밤에 Mac을 깨우고 rsync를 실행하여 백업합니다. 이것은 에너지 절약> 스케줄을 통해 구성됩니다.

그러나 그것은 아무것도 할 수 있기 전에 다시 잠들 것 같습니다. 그래서 rsync가 실행되는 bash 스크립트를 실행하는 동안 잠자기를 중단해야합니다.

가능한 한 가장 좋은 방법은 슬립 타임 아웃을 "Never"또는 매우 긴 타임 아웃으로 설정하고 재 동기화되고 완료되면 정상으로 돌아가는 명령을 발행하는 것입니다. 이를위한 더 나은 솔루션이 있습니까?


수퍼 유저에 있어야합니까?
Kimvais

답변:


18

카페인

예를 들면 다음과 같습니다.

caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder

매뉴얼 페이지에서 :

EXAMPLE
     caffeinate -i make
        caffeinate forks a process, execs "make" in it, and holds an
        assertion that prevents idle sleep as long as that process
        is running.

자세한 내용 man caffeinate을 참조하십시오.


11

Mac OS X 10.8 (Mountain Lion) 이상

caffeinate명령을 사용하십시오 . 참조 나단 롱의 대답 이나 man caffeinate자세한 내용을.

Mac OS X 10.7 (Lion) 및 이전

매뉴얼 페이지에 묻혀 있지만 pmset 에는 매우 간단한 수면 모드가 있습니다. 명령을 실행하면 pmset noidle해당 프로세스가 종료 될 때까지 Mac이 활성화 상태로 유지됩니다. 스크립트에서 사용하는 방법은 다음과 같습니다.

# launch process to prevent sleep and move it to the background
pmset noidle &
# save the process ID
PMSETPID=$!

... do stuff here ...
... don't fall asleep ...
... watch out for that tree!
... ok we're free and clear now ...

# kill pmset so the computer can sleep if it wants to
kill $PMSETPID

이것은 pmset을 사용하여 수면 설정을 변경하는 것보다 낫습니다. 루트 설정이 필요하고 (좋은 시민이되기를 원한다고 가정) 현재 설정을 감지하고 완료되면 다시 변경하는 방법이 있습니다.


2
pmset noidle더 이상 사용되지 않습니다 : 맨 페이지는 다음과 같이 말합니다 This argument is deprecated in favor of caffeinate(8). 내 대답을 참조하십시오.
Nathan Long

4

시험

man pmset

:-)

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