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

Puedo iniciar Postfix temporalmente con:

$ sudo launchctl
launchd% start org.postfix.master

Sin embargo, Console.app muestra que solo se ejecuta por un corto 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 debe actualizarse para que Postfix se ejecute de forma permanente, 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 de forma permanente?

Actualizar 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 simplemente editado con Vim:

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

Tuve problemas al intentar que Xcode editara el archivo.

Respuestas (1)

Los siguientes cambios funcionaron para mí:

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

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

    Esto evitará 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. Vuelva a cargar 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 estar ejecutándose 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. Copiando /System/Library/LaunchDaemons/org.postfix.master.plista /Library/LaunchDaemons/org.postfix.custom.plist, cambiando org.postfix.mastera org.postfix.customy luego descargando y cargando como se indicó anteriormente.
  2. Deshabilitar SIP (usando csrutil), realizar las ediciones y luego volver a habilitar SIP.

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

Me funcionó en Mavericks, pero tuve que ingresar la ruta completa del archivo para cargarlo: sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist
Había una cd /System/Library/LaunchDaemonslínea allí antes del unloady loadque puede haberse perdido. Alineé el camino completo para que quede más claro.
Tuve que escribir "sudo postfix start" para convertirlo en palabras en lugar de cargar cosas desde mjturner; no se porque...
En El Capitán, /System/Library/LaunchDaemons/org.postfix.master.plistya no es editable. ¿Sugerencias?
@ChrisWithers He agregado algo de información. Básicamente, deshabilite SIP, realice las ediciones y vuelva a habilitar. Sin embargo, deberá iniciar desde un medio de rescate antes de poder habilitar/deshabilitar SIP.
@mjturner - ¿desactivar el sorbo? no, no, no... Mucho mejor es simplemente crear un nuevo .plist de su propiedad en /Library/LaunchDaemons/
@ChrisWithers Comentario justo (lamentablemente, su edición sugerida fue rechazada, no por mí). Prefiero el enfoque deshabilitar/editar/habilitar para que sea más obvio, pero el tuyo también es válido.
@mjturner - sí, eso es raro. No recibí ninguna notificación, y es un poco triste. ¿Te importaría hacer la misma edición?
@ChrisWithers Sí, editaré mi respuesta esta noche e incluiré su sugerencia. 👍🏼
@mjturner On High Sierra, org.postfix.master.plistse renombra a com.apple.postfix.master.plist. Tal vez quieras agregar eso a la respuesta.
Tuve que agregar <key>RunAtLoad</key> <true/>para que se iniciara en el arranque (en High Sierra)
@mjturner: Poner el plist personalizado en LaunchDaemons no inicia el demonio personalizado, porque el original ya se está ejecutando, y efectivamente tiene prioridad. Entonces, cada vez que reinicio mi computadora, primero debo descargar el daemon original y luego cargar el personalizado manualmente launchctldesde la Terminal. ¿Hay alguna manera de hacer que macOS (estoy en 10.12) ejecute la versión modificada de Postfix automáticamente al inicio sin interferir con SIP?