내 노드 서버에 대한 launchd.plist 파일을 쓰려고합니다. 내 노드 서버를 실행하는 데 영원히 사용하고 있습니다. 부팅 할 때 서버를 시작하고 싶습니다. 나는 mongodb 발사 plist가 먼저 달릴 때까지 기다리고 싶다.OSX launchd plist 노드에 대한 영구적 인 프로세스
나는 homebrew를 사용하여 mongobb를 설치했으며 이미 launchd.plist와 함께 제공되었습니다. MongoDB를위한
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
PLIST는 다음과 같습니다 :
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.mongodb</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/mongodb/mongod</string>
<string>run</string>
<string>--config</string>
<string>/usr/local/etc/mongod.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>WorkingDirectory</key>
<string>/usr/local</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/mongodb/output.log</string>
<key>StandardOutPath</key>
<string>/usr/local/var/log/mongodb/output.log</string>
<key>HardResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>1024</integer>
</dict>
<key>SoftResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>1024</integer>
</dict>
</dict>
</plist>
만약 내가 종료 컴퓨터와 MongoDB를이 예상대로 최대 발사를 다시 시작 나는 다음 실행했다.
그러나 노드 서버가 시작되지 않습니다. 어떤 아이디어?
는<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>com.test.app</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/forever</string>
<string>-a</string>
<string>-l</string>
<string>/var/log/app/app.log</string>
<string>-e</string>
<string>/var/log/app/app_error.log</string>
<string>/data/server/app.js</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
편집 :
로그 파일을 작성하고 내가 볼이 :
은ENV : 노드 : 그런 파일이나 디렉토리는
는 생각이 노드 것을 의미합니다 바이너리를 찾을 수 없습니다. $ PATH를 echo 할 수 있고/usr/local/bin이 내 경로에 있습니다. 터미널에서 노드를 시작할 수 있습니다. 아이디어?
예상대로이 작동하지 않습니다. 'app.js'를 시작하는 동안'sudo forever list' 또는'forever list'로 영원히 돌아가는 것을 볼 수 없습니다. – jczaplew