macOS에서 "at"이 작동하도록 하기

macOS에서 "at"이 작동하도록 하기

CentOS 서버에서 작업 중이며 다음 명령을 사용하여 작업을 예약하고 있습니다.at

# echo "touch a_long_file_name_file.txt" | at now + 1 minute
job 2 at Wed Oct 31 13:52:00 2018

1분 후,

# ls | grep a_long_file_name_file.tx
a_long_file_name_file.txt

파일이 성공적으로 생성되었습니다.

그러나 macOS에서 로컬로 실행하면

$ echo "touch a_long_file_name_file.txt" | at now + 1 minute
job 31 at Wed Oct 31 13:58:00 2018

몇 분 후에 해당 파일이 생성되지 않는 경우.

atCentOS 서버에서 버전을 확인했습니다

AUTHOR:  
At was mostly written by Thomas Koenig, [email protected].  
2009-11-14                                             

이에 비해 macOS 버전은

AUTHORS
     At was mostly written by Thomas Koenig <[email protected]>.  The time parsing routines are
     by
     David Parsons <[email protected]>, with minor enhancements by
     Joe Halpin <[email protected]>.

BSD                            January 13, 2002                            

나는 그것이 GNU coreutils가 아니라는 at것을 atq발견 했습니다.atrm

$ ls /usr/local/opt/coreutils/libexec/gnubin/ | grep at
cat
date
pathchk
realpath
stat
truncate

atmacOS에 최신 버전을 설치하고 작동시키려면 어떻게 해야 합니까 ?

답변1

atmacOS에서 관련 도구를 업데이트하는 대신 macOS의 기본 도구가 작동하도록 시도해 보겠습니다 at.

macOS 설명서에는 다음과 at같이 나와 있습니다(필자가 강조함).

구현 노트

이는 데몬에 대한 주기적인 호출을 at통해 launchd(8)수행됩니다 atrun(8).기본적으로 비활성화됨. atrun(8)활성화에 대한 자세한 내용은 을 참조하십시오 atrun.

atrun설명서를 확인하세요 :

설명하다

atrun유틸리티는 대기 중인 명령을 실행합니다 at(1). 속성 목록 launchd(8)에 지정된 대로 주기적으로 호출됩니다 com.apple.atrun.plist. 기본적으로 속성 목록에는 true로 설정된 비활성화된 키가 포함되어 있으므로 atrun호출되지 않습니다.

활성화하려면 루트로 다음 명령을 실행하십시오 atrun.

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

at아마도 여기서 무슨 일이 일어나고 있는지, 그리고 다른 관련 질문을 일으키는 원인은 atrunmacOS 설치에서 활성화 하지 않았기 때문이라고 생각합니다 .

launchctlmacOS Mojave에서는 위 명령을 실행하는 것( 사용 ) 외에도 시스템의 보안 및 개인 정보 기본 설정에서 "전체 디스크 액세스"를 사용하여 명령/응용 프로그램 목록에 sudo추가해야 합니다 . /usr/libexec/atrun나는 이것이 보안에 미치는 영향을 알지 못합니다. 개인적으로 /usr/sbin/croncron 작업이 작동하도록 하기 위해 거기에 항목도 추가했습니다(다른 컴퓨터에서 작업했기 때문에 아래 스크린샷에는 표시되지 않음).

여기에 이미지 설명을 입력하세요.

/usr경로에서 명령을 추가 하려면 (macOS의 파일 선택 대화 상자에 표시되지 않음) Cmd+Shift+G파일 선택 대화 상자가 열릴 때(창 하단에 있는 더하기 아이콘/버튼을 누른 후) 키를 누르세요.

이러한 변경을 수행한 후에는 컴퓨터를 다시 시작할 필요가 없습니다. 저는 이것을 macOS Mojave 14.10.1에서 테스트했습니다.

답변2

Kusalananda의 정답에 추가하려면 "전체 디스크 액세스"가 있는 응용 프로그램 목록에 터미널 응용 프로그램을 추가하면 AT 작업의 표준 출력이 사용자에게 메일로 전송됩니다.

죄송합니다. 그의 답변에 대해 언급할 수 없습니다. 나는 위의 정보를 추가하기 위해서만 이 사이트를 등록했으며 댓글을 달 권리가 없습니다.

관련 정보