¿Cuál es la forma correcta de hacer que Postfix se ejecute permanentemente en Lion (no en el servidor)

35

Puedo iniciar Postfix temporalmente con:

$ sudo launchctl
launchd% start org.postfix.master

Sin embargo, Console.app muestra que solo se ejecuta por poco tiempo:

26/11/11 2:00:55.710 PM postfix/master: master exit time has arrived

Creo que el archivo /System/Library/LaunchDaemons/org.postfix.master.plist necesita actualizarse para que Postfix se ejecute permanentemente, pero aún no he encontrado la respuesta.

¿Cuál es la forma correcta de hacer que Postfix comience en el momento del arranque y se ejecute permanentemente?

Actualización Para editar el archivo según lo recomendado por la respuesta seleccionada, primero lo convertí a XML.

plutil  -convert xml1 /System/Library/LaunchDaemons/org.postfix.master.plist

Luego solo lo edité con Vim:

sudo vim /System/Library/LaunchDaemons/org.postfix.master.plist

Tuve problemas al intentar que Xcode editara el archivo.

dkam
fuente

Respuestas:

36

Los siguientes cambios me funcionaron:

  1. Elimine los siguientes dos elementos de /System/Library/LaunchDaemons/org.postfix.master.plist:

    <string>-e</string>
    <string>60</string>
    

    Esto impedirá que salga después de 60 segundos.

  2. Agregue el siguiente elemento como elemento secundario del <dict>...</dict>elemento en el mismo archivo plist:

    <key>KeepAlive</key>
    <true/>
    
  3. Recargar el archivo:

    sudo launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist 
    sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist
    

postfix ahora debería ejecutarse como un demonio.

Lo anterior funciona en Mountain Lion, Mavericks, Yosemite y El Capitan. Para los sistemas que tienen Protección de integridad del sistema (El Capitan y posterior) hay dos opciones:

  1. Copiar /System/Library/LaunchDaemons/org.postfix.master.plista /Library/LaunchDaemons/org.postfix.custom.plist, cambiando org.postfix.mastera org.postfix.customy luego la carga y descarga como anteriormente.
  2. Deshabilitar SIP (usando csrutil), hacer las ediciones y luego volver a habilitar SIP

Nota: Con High Sierra y Mojave, el archivo de configuración es en com.apple.postfix.master.plistlugar de org.postfix.custom.plist.

mjturner
fuente
1
Me funcionó en Mavericks, pero tuve que poner la ruta completa del archivo para cargarlo: sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist
rico
1
Había una cd /System/Library/LaunchDaemonslínea allí antes del unloady loadeso puede haberse pasado por alto. Indiqué el camino completo para aclararlo.
Jim Stewart
2
@mjturner: ¿deshabilitar el sorbo? nope nope nope ... Mucho mejor es solo crear una nueva lista que poseas en / Library / LaunchDaemons /
Chris Withers
1
@mjturner: sí, eso es raro. No recibí ninguna notificación, y es un poco triste. ¿Te importaría hacer la misma edición?
Chris Withers
3
@mjturner En High Sierra, org.postfix.master.plistse renombra a com.apple.postfix.master.plist. Tal vez desee agregar eso a la respuesta.
Utku