Citando enlace :
- ~ / Library / LaunchAgents y / Library / LaunchAgents se utilizan para el usuario que ha iniciado sesión actualmente.
- / Library / LaunchDaemons es para ejecutar cosas como root ( o el usuario especificado con la tecla
UserName
) cuando la máquina arranca.
La clave (sin juego de palabras), sin embargo, es que los plists colocados en /Library/LaunchDaemons/
deben ser poseídos por root:wheel
y deben ser chmod 644
.
Entonces, solo porque nrpe
crea un plist no significa que se ejecutará en el arranque sin inicio de sesión.
Lo instalé a través de brew
, y al final 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
Le recomendaría que hiciera esto, en su lugar:
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 primera línea se asegura de que los permisos sean correctos.
La segunda línea se asegura de que la propiedad sea correcta
La tercera / última línea vincula el archivo de / usr / local / opt / nrpe / a / Library / LaunchDaemons (note la ausencia de un ~
que es intencional).
Luego debes asegurarte de que el archivo no existe en ~ / LaunchAgents, lo que sería confuso:
rm -f "$HOME/Library/LaunchAgents/homebrew.mxcl.nrpe.plist"
Eso eliminará el archivo (si existe).
Importante
Al colocar el archivo en /Library/LaunchDaemons
, le dirá a nrpe
que se ejecute como root
. Eso puede estar bien, o puede ser una muy mala idea. No sé la respuesta a esa pregunta. Sin embargo, para estar seguro, haría que se ejecute explícitamente como un usuario otro que root, a menos que estuviera absolutamente seguro. Además, usaría la capacidad de launchd
para registrar errores para ver si se ejecuta correctamente.
Para hacer esto, deberá editar el plist mencionado anteriormente. Aquí está el archivo como se creó originalmente, a partir del 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>
y aquí está la versión que recomendaría:
<?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>
Reemplaza INSERTUSERNAMEHERE
con el nombre de usuario real del usuario con el que quieres que nrpe
se ejecute como.
En desuso
Tenga en cuenta que de acuerdo con LaunchControl (que es la mejor aplicación para administrar plistas de launchd) el Debug
La clave está en desuso para OS X 10.10 y se ignorará.
Reiniciar
Una vez que tenga el archivo en su lugar, la mejor manera de probarlo será reiniciar el sistema y NO iniciar sesión en la consola. En su lugar, después de que se complete el proceso de inicio, inicie sesión a través de ssh
y asegúrese de que el proceso se está ejecutando, y verifique los dos archivos de registro para ver qué es lo que ve, si es que ve algo.
Espero que esto ayude.
ps: gasta $ 10 en LaunchControl . Es una gran aplicación. No hay un código de registro por lo que no tiene que tener para pagar, pero debe hacerlo porque el desarrollador confía en usted si usa la aplicación.