Esegui nrpe all'avvio senza un utente loggato

3

Esecuzione di un Mac mini con l'app del server. (El Capitan 10.11.4 & Server.app 5.1)

Xcode, brew e nrpe installati tramite brew. Funziona bene come tale. Non è ragionevole avere il desktop remoto su di esso ed effettuare il login solo per avere il monitoraggio attivo e funzionante. Dato che FileVault è attivo, il login automatico non è un'opzione.

Come posso fare nrpe start se la macchina viene riavviata senza interazione?

Edit1: OK, non ho trovato un modo semplice per farlo funzionare; quindi ho disabilitato il filevault dopo una breve discussione con il team. Ma all'avvio (e con un accesso automatico) nrpe continua a non avviarsi automaticamente ...

    
posta tink 18.04.2016 - 21:40
fonte

1 risposta

2

Citando link :

  1. ~ / Library / LaunchAgents e / Library / LaunchAgents vengono utilizzati per l'utente attualmente connesso.
  2. / 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.

    
risposta data 20.04.2016 - 08:48
fonte

Leggi altre domande sui tag