Tengo un script monta.sh
para montar un volumen externo:
#!bin/sh
mkdir -p /Volumes/remvol
mount_smbfs //user:password@server/folder /Volumes/remvol
Luego, tengo com.jo.monta.plist
que iniciar el script después del arranque del sistema colocado en /Library/LaunchDaemons
:
<?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>Label</key>
<string>com.jo.monta</string>
<key>Disabled</key>
<false/>
<key>UserName</key>
<string>admin</string>
<key>ProgramArguments</key>
<array>
<string>/Users/admin/scripts/monta.sh</string>
</array>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
He probado el script desde la línea de comandos y funciona, sin embargo, si inicio sesión después del arranque, el volumen no está montado.
¿Parece que el archivo plist no se carga? ¿qué ocurre?
El script y el plist funcionan perfectamente bien si realiza los siguientes cambios:
agregue una barra en /Users/admin/scripts/monta.sh:
#!/bin/sh
mkdir -p /Volumes/remvol
mount_smbfs //user:password@server/folder /Volumes/remvol
propiedad adecuada de com.jo.monta.plist:
sudo chown root:wheel /Library/LaunchDaemons/com.jo.monta.plist
bits de modo de archivo adecuados de /Users/admin/scripts/monta.sh:
chmod 755 /Users/admin/scripts/monta.sh
carga el demonio de lanzamiento:
sudo launchctl load /Library/LaunchDaemons/com.jo.monta.plist
chmod 755 /Users/admin/scripts/monta.sh
graham miln
#!bin/sh
debería ser#!/bin/sh
graham miln
system.log
respecto a este trabajo de lanzamiento? Puede ver el contenido delsystem.log
uso de Aplicaciones > Utilidades > Console.app .naio
com.jo.monta
en el registro del sistema, también he usadolaunchctl list | grep monta
para ver si había algo y ninguna referencia tampoco.sin ladera
ProgramArguments
en lugar deProgram
(que es un par clave/valor simple, no una matriz, consulteman launchd.plist
los detalles)?