답변:
나는 해결책을 찾았다
sudo launchctl log level debug
이 후
tail -f /var/log/system.log
시작된 plist 파일에 다음 행을 포함하는 경우 프로세스가 시작되지 않고 프로세스를 로그하려고한다고 가정하십시오.
<key>StandardOutPath</key>
<string>/path/to/logfile.log</string>
<key>StandardErrorPath</key>
<string>/path/to/another_logfile.log</string>
프로세스를 다시로드하면 스크립트 내부에있는 로깅 또는 인쇄가 실행될 때마다이 두 파일 중 하나에 캡처됩니다. 파일을 회전시키는 것은 당신에게 달려 있습니다. 예상 한대로 두 인스턴스에서 동일한 파일을 사용하면 오류와 stdout이 모두 같은 위치에 기록됩니다.
시작 데몬 및 에이전트 작성의 시작된 작업 디버깅 섹션을 참조하십시오 .
OS X 10.11 (El Capitan)에서는 sudo launchctl debug <service-target> --stdout --stderr
@peter가 제안한 파일 시스템 옵션을 사용하지 않으려는 경우 일회용 로깅을 사용 하도록 설정할 수 있습니다 .
물건의 제비의 현재 구현에서 다른 launchctl
과는 <service-target>
이상한의 종류이다. 예를 들어에 ~/Library/LaunchAgents/dev.localmon.plist
"label" 이있는 로컬 서비스를 구성했다고 가정 해 봅시다 dev.localmon
. 그것은 <service-target>
입니다 gui/$UID/dev.localmon
경우, $UID
당신은 CLI에서이 작업을 실행하고 있기 때문에, 쉘 당신을 위해 보간 것, 사용자 ID입니다.
따라서 dev.localmon
시작시 서비스가 중단되었다고 가정 하면 다음과 같이 호출 launchctl
하여 프로세스의 stdout 및 stderr를 다음에 서비스를 시작할 때 (그리고 다음에 만) 쉘에 파이프 할 수 있습니다 .
sudo launchctl debug gui/$UID/dev.localmon --stdout --stderr
개방형 TTY와 함께 중단되므로 다른 터미널로 이동하여 다음을 실행하십시오.
launchctl start dev.localmon
# start is a legacy command and doesn't use the fancy new service-target notation
그리고, 제 1 단자 다시, 당신은 해야 출력을 참조하십시오. (이상하게도 서비스 프로세스가 종료 될 때 닫히지 않으므로 Ctrl-C를 사용해야합니다.)
Btw, PATH 또는 환경이 이전에 서비스를 중단 한 것으로 구성 파일을 수정 한 후에 launchctl unload ~/Library/LaunchAgents/dev.localmon.plist && launchctl load ~/Library/LaunchAgents/dev.localmon.plist
는 문서의 purported uncache
하위 명령이 다음과 같은 영향을 미치기 때문에 여전히 이전 2 단계 를 사용해야합니다 .
명령이 아직 구현되지 않았습니다.
애플의 사후 출시 전략을위한 Yay : "빠른 이동 및 중단"
sudo launchctl debug
로 종료 Could not find domain for
나를 위해