간단한 실행 자습서

자주 실행하려는 작은 스크립트를 작성했다고 가정합니다. 당신이 맥을 사용하는 경우,launchd는 사용할 수있는 완벽한 도구입니다.

crontab보다 낫다,다른 것 들 중,프로그램을 실행 하도록 예약 된 때 컴퓨터가 꺼져 있는 경우launchd컴퓨터가 깨어 나면 즉시 프로그램을 실행 합니다. crontab는 그렇지 않다.

가장 먼저 할 일은 실행할 스크립트를 만드는 것입니다. 나는 간단한 노드를 쓸 것이다.그러나 당신은 당신이 원하는 것을 사용할 수 있습니다.

touch ~/demo/main.js

이 예제를 위해서는이 스크립트가 실행 된 시간을 기록하는 것입니다.

console.log("Hello", Date.now())

이제 우리는launchd구성 플리스트 파일을 작성해야합니다.이 파일에는 다음과 같은 내용이 포함되어 있습니다. 이 코드를 거기에 붙여 넣으십시오. 이 예제에서 사용 중인 디렉터리로/Users/chet/demo을 변경해야 할 수 있습니다.

이 파일은 몇 가지를 지정합니다:

  • 사용자가 로그인 할 때마다 데몬이 시작됩니다.
  • 20 초마다 실행됩니다.
  • 일부 로그 파일로 출력됩니다(디버깅에 매우 유용합니다).
  • 환경 경로를 설정합니다(프로그램이usr/local/bin의 다른 명령을 사용하는 경우 유용합니다).
  • 명령은/Users/chet/demo디렉터리에서 실행됩니다.
  • 및 명령은/usr/local/bin/node main.js입니다.

여기에 대해 읽을 수있는 다른 옵션이 많이 있습니다. 일반적으로 사용되는 옵션은 스크립트가 종료되거나 충돌할 때마다 스크립트를 다시 시작하는KeepAlive옵션입니다. 이 기능은 스크립트를 항상 실행하려는 경우에 유용합니다.

지금,우리는 단지 그것을 실행해야합니다. 먼저Console.app을 엽니 다. 당신은 전에 그것을 사용한 적이 있지만,이런 종류의 물건을 디버깅하기위한 기본 유틸리티 응용 프로그램입니다. 시스템에서.로그 섹션에서com.demo.daemon를 찾아launchd를 시작하려고 할 때 시스템 오류가 있는지 확인할 수 있습니다.

다시 터미널에서 다음 명령을 실행합니다.

launchctl load ~/Library/LaunchAgents/com.demo.daemon.plist

Console.app에 약간의 오류가 표시되면unload로 데몬을 중지하고stderr.log파일에서 오류를 찾을 수 있습니다.

launchctl unload ~/Library/LaunchAgents/com.demo.daemon.plist
cat ~/demo/stderr.log

모든 것이 잘 진행되면Console.app에 아무 것도 표시되지 않으며 20 초마다~/demo/stdout.log파일에 로그가 표시됩니다.