LaunchDaemon non riconosciuto

3

Ho installato CouchDB tramite MacPorts. Ora voglio avviarlo all'avvio del mio Mac, quindi ho eseguito le istruzioni fornite nel processo di installazione:

sudo launchctl load -w /Library/LaunchDaemons/org.apache.couchdb.plist

Tuttavia, questo non sembra funzionare. Ho cercato all'interno della directory LaunchDaemon e il file Plist è lì (come link simbolico):

lrwxr-xr-x  1 root  wheel   57 18 aug 10:11 org.apache.couchdb.plist -> /opt/local/Library/LaunchDaemons/org.apache.couchdb.plist

I contenuti del file plist attuale sembrano ok (tuttavia non ho una vera conoscenza di come dovrebbe apparire):

<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>org.apache.couchdb</string>
    <key>EnvironmentVariables</key>
    <dict>
      <key>HOME</key>
      <string>~</string>


    </dict>
    <key>ProgramArguments</key>
    <array>
      <string>/opt/local/bin/couchdb</string>
    </array>
    <key>UserName</key>
    <string>couchdb</string>
    <key>StandardOutPath</key>
    <string>/dev/null</string>
    <key>StandardErrorPath</key>
    <string>/dev/null</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
  </dict>
</plist>

Quando eseguo /opt/local/bin/couchdb manualmente, il processo viene creato, quindi non ci sono problemi lì. Sembra che il daemon di avvio salvi questo comando.

Qualche idea su come risolvere questo problema?

    
posta Peter Kruithof 26.08.2010 - 09:57
fonte

2 risposte

5

Prova quanto segue ( comando a una riga ):

sudo chown -R couchdb:couchdb /opt/local/var/lib/couchdb/ /opt/local/var/log/couchdb/ /opt/local/etc/couchdb/ /opt/local/var/run/couchdb

Quindi riavvia.

Se non funziona, quale versione di MacPorts e CouchDB hai?

    
risposta data 26.08.2010 - 21:00
fonte
3

Non ho particolare familiarità con CouchDB, ma vedo un paio di potenziali problemi con il tuo file .plist: in primo luogo, il valore HOME impostato è strano - dovrebbe essere un percorso di cartella specifico (cioè ovunque tu metta cartella home dell'utente di couchdb), non ~ . In secondo luogo, sospetto che sia necessario impostare la variabile d'ambiente PATH in modo che CouchDB possa trovare gli altri programmi opzionali installati. Quindi quella sezione di .plist dovrebbe essere simile a questa:

<key>EnvironmentVariables</key>
<dict>
    <key>HOME</key>
    <string>/usr/local/var/lib/couchdb</string>
    <key>PATH</key>
    <string>/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin</string>
</dict>

(Nota: i valori di cui sopra sono ipotesi basate su un po 'di googlatura: potrebbe essere necessario regolarli su dove si trova la home dell'utente CouchDB e / o dove sono le cartelle binari aggiuntive.) Per caricare il file .plist modificato file, utilizzare:

sudo launchctl unload /Library/LaunchDaemons/org.apache.couchdb.plist
sudo launchctl load /Library/LaunchDaemons/org.apache.couchdb.plist

Se ciò non risolve il problema, ci sono un paio di punti in cui cercare maggiori informazioni su cosa non va: prima, guarda il log di sistema (/var/log/system.log), o con l'utilità della console o uno strumento da riga di comando; avrà degli errori durante il lancio durante il tentativo di elaborare il file .plist o avviare CouchDB. In secondo luogo, segui il suggerimento di Mark su come cambiare StandardOutPath e StandardErrorPath su file reali e guarda cosa mostra lì. Questo non è necessario se tutto è configurato correttamente, ma può essere molto utile per scoprire cosa c'è che non va quando c'è un problema (e puoi tornare a / dev / null dopo che il problema è stato risolto).

    
risposta data 26.08.2010 - 21:08
fonte

Leggi altre domande sui tag