¿Cómo modificar un Daemon de lanzamiento permanentemente bajo OS X El Capitan?

6

He modificado el org.postfix.master.plist predeterminado de postfix para que se ejecute como un daemon , para que pueda enviarme e- correo cada vez que un usuario local recibe un correo.

Valor predeterminado:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.postfix.master</string>
    <key>Program</key>
    <string>/usr/libexec/postfix/master</string>
    <key>ProgramArguments</key>
    <array>
        <string>master</string>
        <string>-e</string>
        <string>60</string>
    </array>
    <key>QueueDirectories</key>
    <array>
        <string>/var/spool/postfix/maildrop</string>
    </array>
    <key>AbandonProcessGroup</key>
    <true/>
</dict>
</plist>

Modificado:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>org.postfix.master</string>
        <key>Program</key>
        <string>/usr/libexec/postfix/master</string>
        <key>ProgramArguments</key>
        <array>
                <string>master</string>
        </array>
        <key>QueueDirectories</key>
        <array>
                <string>/var/spool/postfix/maildrop</string>
        </array>
        <key>AbandonProcessGroup</key>
        <true/>
</dict>
</plist>

Sin embargo, este archivo está bajo /System/Library/LaunchDaemons/ , así que tuve que deshabilitar SIP temporalmente para modificar el archivo. Leí que después de la próxima actualización del sistema operativo, todos mis cambios desaparecerán debido a SIP. ¿Qué puedo hacer para que esto sea permanente? ¿Puedo poner mi Daemon de inicio en /Library/LaunchDaemons como segundo?

    
pregunta benjaminvonderweiden 01.03.2016 - 11:54

1 respuesta

5

Todavía no he tenido que lidiar con esto "de verdad", pero creo que la mejor solución es:

  1. Copie el archivo .plist en / Library / LaunchDaemons.
  2. Cámbiele el nombre (por ejemplo, agregando "local" al principio del nombre de archivo) y edite su valor Label para que coincida. Si no cambia esto, es probable que Launchd se confunda entre esto y el original.
  3. Realiza cualquier otra edición que necesites
  4. Asegúrese de que la propiedad esté establecida en root: wheel, y los permisos en 644.
  5. Desactiva el elemento original, por ejemplo, sudo launchctl unload -w /System/Library/LaunchDaemons/org.postfix.master.plist (el -w hace que sea permanente).
  6. Cargue su reemplazo personalizado con, por ejemplo, sudo launchctl load /Library/LaunchDaemons/local.org.postfix.master.plist (o simplemente reiniciar).

Por cierto, si simplemente deshabilitas el SIP y modificas el archivo existente, no será necesariamente revertido por una actualización del sistema operativo. Pero podría , y tendrías que comprobarlo después de cada actualización (incluidas las actualizaciones de seguridad, etc.), lo cual es una molestia.

    
respondido por el Gordon Davisson 01.03.2016 - 22:11

Lea otras preguntas en las etiquetas