1 votos

Intentando ejecutar samba con un LaunchAgent - el proceso no se inicia con el sistema

He instalado Samba3 desde MacPorts. (a continuación esta guía ) Para ejecutarlo ejecuto sudo /opt/local/sbin/smbd -D && sudo /opt/local/sbin/nmbd -D en una ventana de Terminal y todo funciona bien.

He intentado crear un LaunchAgent para ejecutar samba con el sistema, en lugar de tener que invocarlo manualmente. Mi archivo plist se llama com.samba3.plist y consiste en lo siguiente:

<!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.samba3</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/sbin/smbd</string>
<string>-D</string>
<string>&amp;&amp;</string>
<string>/opt/local/sbin/nmbd</string>
<string>-D</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Sin embargo, al iniciar el sistema no se ejecuta samba.

1voto

Nate Puntos 220

Veo varias cosas que hay que arreglar:

  1. Esto debe ser instalado como un LaunchDaemon, no como un LaunchAgent. La diferencia es que un agente se ejecuta dentro de una sesión de inicio de sesión de usuario, como el usuario; un demonio se ejecuta independientemente de quién está o no está conectado, y generalmente se ejecuta como Root (lo que necesita aquí).
  2. La lista ProgramArgument no es analizada por un shell, por lo que && no hace lo que usted quiere - sólo se pasa como un argumento a smbd. Realmente deberías hacer dos elementos launchd, uno para smbd y otro para nmbd.
  3. El -D a cada programa le dice que se daemonice, es decir, que se desprenda y se ejecute en segundo plano; launchd espera que las cosas que lanza permanezcan conectadas para poder monitorizarlas (y de hecho pensará que un programa ha salido si se daemoniza). Elimine el -D banderas, y utilizar -F en su lugar.

Además, si tienes Snow Leopard (instalado o disponible) echa un vistazo a los elementos de launchd que inician la versión del sistema de smbd y nmbd; son /System/Library/LaunchDaemons/smbd.plist y .../nmbd.plist. Contienen algunos trucos adicionales que pueden resultarte útiles. En particular, nmbd está configurado para relanzarse automáticamente si la red está activa, y smbd sólo se lanza bajo demanda cuando se recibe una conexión.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X