간단한 실행 자습서
자주 실행하려는 작은 스크립트를 작성했다고 가정합니다. 당신이 맥을 사용하는 경우,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
파일에 로그가 표시됩니다.