나는이 일을하기 위해 AppleScript와 Automator와 함께 놀았지만 머리를 감쌀 수는 없습니다. 누군가 나에게 예를 보여 주거나 특정 시간에 응용 프로그램을 닫고 컴퓨터를 절전 모드 또는 종료 상태로 만드는 방법에 대한 팁을 줄 수 있다면 크게 감사하겠습니다.
나는이 일을하기 위해 AppleScript와 Automator와 함께 놀았지만 머리를 감쌀 수는 없습니다. 누군가 나에게 예를 보여 주거나 특정 시간에 응용 프로그램을 닫고 컴퓨터를 절전 모드 또는 종료 상태로 만드는 방법에 대한 팁을 줄 수 있다면 크게 감사하겠습니다.
답변:
정기적으로 예약 된 시간에 실행하는 대신이 절차를 시작하고 싶다고 가정합니다.
내 접근 방식은 명령 줄에서 시작하는 것이지만 일부 명령을 사용하여 Automator 스크립트의 셸 스크립트 구성 요소에서 명령을 실행할 수 있습니다. 다음 접근 방식은 몇 가지 구성 요소를 결합하여 작업을 완료합니다.
tell
응용 프로그램을 종료 하는 명령1. 응용 프로그램 종료를 알리기
이것은 다음과 같이 간단 할 수 있습니다.
osascript -e 'tell application "AppName" to quit'
2. 컴퓨터를 절전 모드로 전환
pmset
자세한 내용을 살펴보십시오 . 다음 명령을 실행하면 컴퓨터가 잠자기 상태가됩니다.
pmset sleepnow
3. 특정 시간에 실행될 조작 스케줄링
at 명령을 살펴보십시오 . 이 명령은 명령 실행 시간을 지정하는 기능을 제공합니다. 이 기능은 기본적으로 사용되지 않으므로 사용하도록 설정해야합니다. atrun
데몬 을 활성화하려면 다음 명령 [SU에 대한 참조]을 실행하십시오 .
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
을 사용 설정 atrun
하면 모든 명령을 발행하여 특정 시간 동안 예약 할 수 있습니다
echo "<command>" | at HH:MM
기본적으로 at
입력을 stdin
받기 때문에 작동합니다 . 보다 간단한 방법은 파일에 나열된 명령을 실행하는 것입니다. -f
플래그 를 사용하여 다음과 같이 실행할 스크립트 이름을 사용하여 파일을 실행할 수 있습니다 .
at -f /path/to/file HH:MM
함께 모아서
다음 atrun
은 활성화 된 것으로 가정합니다 . 장난감의 예로 메일을 종료하고 오후 11시에 컴퓨터를 절전 모드로 전환하려고한다고 가정하겠습니다. 다음과 같이 실행하려는 명령이 포함 된 파일을 만듭니다.
osascript -e 'tell application "Mail" to quit'
pmset sleepnow
해당 파일을 저장 quit-and-sleep
한 후 명령 행에서 실행하십시오.
at -f /path/to/quit-and-sleep 23:00
경고
Mail이 실제로 닫혔는지 확인하지 않았습니다. 이 스크립트는 또한 컴퓨터를 절전 모드로 전환하는 데 방해가되지 않는다고 가정합니다. 나는 당신이 원하는 것에 대한 시작점으로 여기에서 간단하게 유지했습니다.
다음은 하드 코딩 된 시간 값을 제공하여 엄격하게 애플 스크립트 버전입니다. 물론 원한다면이 부분을 대화식으로 만들 수도 있습니다. 또한이 버전에서는 시간 문자열이 오늘과 관련된 것으로 가정합니다.
--Get time setting for action to occur
set t to "3:16:30 PM"
--build a time string to use as a target.
set cd to (current date) as text
set AppleScript's text item delimiters to " "
set targetTime to text items 1 thru -3 of cd
set targetTime to date ((targetTime as text) & " " & t)
repeat while (current date) < targetTime
beep
delay 30 -- check the time every 30 seconds
end repeat
tell application "Mail"
quit
end tell
tell application "Finder"
display dialog "Do you want to shut the computer down now?"
if button returned of the result is "Ok" then
shutdown
end if
end tell
에서 다음으로 일정을 한 번 예약 할 수 있습니다.
at 23:59 <<< 'osascript -e "quit app \"Mail\""; pmset sleepnow'
또는 매일 반복하도록 예약하려면 다음을 사용하여 crontab을 편집하고 EDITOR=nano crontab -e
다음과 같이 항목을 추가하십시오.
59 23 * * * osascript -e 'quit app "Mail"'; pmset sleepnow