Próbuję napisać plik launchd.plist dla mojego serwera węzła. Używam na zawsze, aby uruchomić mój serwer węzła. Chciałbym, aby serwer uruchamiał się przy starcie. Chciałbym także poczekać, aż plik mongodb launchd plist zostanie uruchomiony jako pierwszy.OSD launchd plist dla węzła na zawsze proces
Zainstalowałem mongobb używając homebrew i przyszedł już z launchd.plist. Mam realizowane następujące:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
plist dla MongoDB jest:
<!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>
Gdybym wyłączenia komputera i ponownie MongoDB odpala się tak jak powinno.
Jednak mój serwer węzła nie uruchamia się. Jakieś pomysły?
<?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>
EDIT:
pisanie do pliku dziennika i widzę to:
env: węzeł: Nie ma takiego pliku lub katalogu
Myślę, że to oznacza, że węzeł nie można znaleźć pliku binarnego. Mogę echo $ PATH i/usr/local/bin jest na mojej ścieżce. Mogę uruchomić węzeł z terminala. Pomysły?
To nie działa zgodnie z oczekiwaniami. Mimo że uruchomi 'app.js', nie będziesz mógł zobaczyć go działającego na zawsze z' sudo forever list' lub 'forever list'. – jczaplew
musisz wstawić uruchomić przed app.js silny, to możesz wyświetlić listę wszystkich aplikacji węzła z uruchomionym ... –
erwin