Я пытаюсь написать файл launchd.plist для своего сервера узлов. Я использую вечность для запуска своего сервера узлов. Я хочу, чтобы сервер запускался при загрузке. Я также хотел бы дождаться запуска mongodb launchd plist первым.
Я установил mongobb с помощью homebrew, и у него уже есть launchd.plist. Я выполнил следующее:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
plist для mongodb:
<!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: node: нет такого файла или каталога
Я думаю, это означает, что двоичный файл узла не может быть найден. Я могу повторить $ PATH и / usr / local / bin на моем пути. Я могу запустить узел с терминала. Идеи?