Script lanzado para montar el volumen en el arranque

Tengo un script monta.shpara montar un volumen externo:

#!bin/sh
mkdir -p /Volumes/remvol
mount_smbfs //user:password@server/folder /Volumes/remvol

Luego, tengo com.jo.monta.plistque 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?

Pequeña corrección al guión: #!bin/shdebería ser#!/bin/sh
¿ Ve algún resultado con system.logrespecto a este trabajo de lanzamiento? Puede ver el contenido del system.loguso de Aplicaciones > Utilidades > Console.app .
@GrahamMiln Gracias, corregí mi guión. No he visto ninguna referencia com.jo.montaen el registro del sistema, también he usado launchctl list | grep montapara ver si había algo y ninguna referencia tampoco.
¿Por qué está usando ProgramArgumentsen lugar de Program(que es un par clave/valor simple, no una matriz, consulte man launchd.plistlos detalles)?

Respuestas (1)

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
@naio Pruebachmod 755 /Users/admin/scripts/monta.sh