macOS에서 실행할 스크립트를 예약하기 위해 `at`을 어떻게 사용합니까?

macOS에서 실행할 스크립트를 예약하기 위해 `at`을 어떻게 사용합니까?

저는 다른 스크립트가 실행된 후 특정 시간에 실행해야 하는 Python 스크립트를 작성했습니다. 명령 을 찾았고 at약간의 파고 후에 다음을 시도했습니다(가독성을 위해 여러 줄로 나눴습니다).

/private/var/folders/w9/6q0rjl6n4yv859fpxbg4123w0000gn/T/S10/fm-git.py
--filename chiv-lib --repository /Users/chuck/Projects/chivalry/chiv-lib/
--path Chivalry/ --comment "test" | at 2:52pm

그러면 스크립트가 즉시 실행되었습니다. 그래서 나는 노력했다

at 2:53pm
> /private/var/folders/w9/6q0rjl6n4yv859fpxbg4123w0000gn/T/S10/fm-git.py
> --filename chiv-lib --repository /Users/chuck/Projects/chivalry/chiv-lib/
> --path Chivalry/ --comment "test"
> ^D

그러나 시간이 흘렀고 스크립트가 실행되지 않았습니다. 위의 내용 후에 at -l다음을 출력합니다.

13  Mon Nov 27 02:53:00 2017
12  Mon Nov 27 14:52:00 2017

이것은 macOS High Sierra에 있습니다. at이것에 적합한 유틸리티 입니까 ? 그렇다면 여기서 내가 원하는 것을 어떻게 수행할 수 있습니까?

답변1

Mac OS X(이 하드웨어는 macOS를 실행하기에는 너무 오래되었기 때문에)와myat원하는 날짜 형식이 기억나지 않기 때문에 at...

$ date
domingo, 26 de noviembre de 2017, 16:34:12 PST
$ myat 16:36
touch $HOME/nananananananananananananananana-atran
job 2 at Sun Nov 26 16:36:00 2017
$ atq
1       Wed Mar  9 08:00:00 2016
2       Sun Nov 26 16:36:00 2017
$ 

... 왜 2016년 직업이 맴돌고 있는 걸까요??

$ date
domingo, 26 de noviembre de 2017, 16:36:33 PST
$ atq
1       Wed Mar  9 08:00:00 2016
2       Sun Nov 26 16:36:00 2017
$ 

어...어쩌면 매뉴얼 페이지가 at도움이 될까요?

IMPLEMENTATION NOTES
     Note that at is implemented through the launchd(8) daemon periodically
     invoking atrun(8), which is disabled by default.  See atrun(8) for infor-
     mation about enabling atrun.

그러는 동안 atrun(8)우리는...

 Execute the following command as root to enable atrun:
       launchctl load -w
       /System/Library/LaunchDaemons/com.apple.atrun.plist

이런. 한번 해보자...

$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

그리고 1~2분 정도 기다립니다...

$ atq
$ ls *atran
nananananananananananananananana-atran
$ 

일단 켜면 좋아 보입니다(경고로 인해 배터리가 소모되거나 귀중한 CPU 슬라이스가 소모될 수 있습니다...)

관련 정보