Citando link :
- ~ / Library / LaunchAgents e / Library / LaunchAgents vengono utilizzati per l'utente attualmente connesso.
- / Library / LaunchDaemons è per eseguire cose come root ( o l'utente specificato con la chiave
UserName
) all'avvio della macchina.
La chiave (no pun intended), tuttavia, è che i plists inseriti in /Library/LaunchDaemons/
devono essere di proprietà di root:wheel
e dovrebbero essere chmod 644
.
Quindi, solo perché nrpe
crea un plist non significa che verrà eseguito all'avvio senza accesso.
L'ho installato tramite brew
da solo e alla fine dice:
To have launchd start nrpe at login:
ln -sfv /usr/local/opt/nrpe/*.plist ~/Library/LaunchAgents
Then to load nrpe now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nrpe.plist
Ti consiglio di farlo, invece:
chmod 644 /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist
sudo chown root:wheel /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist
sudo ln /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist /Library/LaunchDaemons/homebrew.mxcl.nrpe.plist
La prima riga si assicura che le autorizzazioni siano corrette.
La seconda riga si assicura che la proprietà sia corretta
La terza / ultima linea collega il file da / usr / local / opt / nrpe / a / Library / LaunchDaemons (notare l'assenza di ~
che è intenzionale).
Quindi devi assicurarti che il file non esista in ~ / LaunchAgents, il che sarebbe fonte di confusione:
rm -f "$HOME/Library/LaunchAgents/homebrew.mxcl.nrpe.plist"
Questo cancellerà il file (se esiste).
Importante
Inserendo il file in /Library/LaunchDaemons
ti verrà detto nrpe
per essere eseguito come root
. Potrebbe essere OK, o potrebbe essere una pessima idea. Non conosco la risposta a questa domanda. Tuttavia, per essere sicuro, lo farei esplicitamente come utente altro di root, a meno che non ne fossi assolutamente sicuro. Inoltre, vorrei utilizzare la capacità di launchd
di registrare gli errori per vedere se è in esecuzione OK.
Per fare ciò dovrai modificare i dettagli sopra menzionati. Ecco il file così come è stato originariamente creato, a partire dal 2016/04/20:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.nrpe.agent</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nrpe</string>
<string>-c</string>
<string>/usr/local/etc/nrpe.cfg</string>
<string>-d</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Homebrew NRPE Agent</string>
<key>Debug</key>
<true/>
</dict>
</plist>
ed ecco la versione che consiglierei:
<?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>Debug</key>
<true/>
<key>GroupName</key>
<string>staff</string>
<key>InitGroups</key>
<true/>
<key>Label</key>
<string>org.nrpe.agent</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nrpe</string>
<string>-c</string>
<string>/usr/local/etc/nrpe.cfg</string>
<string>-d</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Homebrew NRPE Agent</string>
<key>StandardErrorPath</key>
<string>/tmp/org.nrpe.agent.stderr.log</string>
<key>StandardOutPath</key>
<string>/tmp/org.nrpe.agent.stdout.log</string>
<key>UserName</key>
<string>INSERTUSERNAMEHERE</string>
</dict>
</plist>
Sostituisci INSERTUSERNAMEHERE
con il nome utente effettivo dell'utente che vuoi nrpe
per eseguire come.
Deprecato
Tieni presente che in base a LaunchControl (che è la migliore app disponibile per la gestione degli elenchi di launchd) Debug
la chiave è deprecata per OS X 10.10 e verrà ignorata.
Reboot
Una volta installato il file, il modo migliore per testarlo sarà riavviare il sistema e NON accedere alla console. Al termine del processo di avvio, accedi tramite ssh
e assicurati che il processo sia in esecuzione, quindi controlla i due file di registro per vedere cosa, se non altro, vedi lì.
Spero che questo aiuti.
ps - spendi $ 10 su LaunchControl . È un'ottima app. Non esiste un codice di registrazione in modo da non avere per pagarlo, ma è necessario perché lo sviluppatore si fida di te se usi l'app.