Come modificare un Launch Daemon in modo permanente sotto OS X El Capitan?

6

Ho modificato il postfix di postfix predefinito come daemon , quindi posso inviarmi e- posta ogni volta che un utente locale riceve una mail.

default

<?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>

modifica:

<?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>

Tuttavia questo file è in /System/Library/LaunchDaemons/ quindi ho dovuto disabilitare temporaneamente SIP per modificare il file. Ho letto che dopo il prossimo aggiornamento del sistema operativo tutte le mie modifiche saranno cancellate a causa di SIP. Cosa posso fare per rendere questo permanente? Posso mettere il mio Launch Daemon sotto /Library/LaunchDaemons come secondo?

    
posta benjaminvonderweiden 01.03.2016 - 11:54
fonte

1 risposta

5

Non ho ancora avuto a che fare con questo "per davvero", ma penso che la soluzione migliore sia:

  1. Copia il file .plist in / Library / LaunchDaemons.
  2. Rinominalo (ad esempio aggiungendo "local." all'inizio del nome file) e modifica il suo valore Label in modo che corrisponda. Se non lo cambi, è probabile che launchd si confonda tra questo e l'originale.
  3. Crea qualsiasi altra modifica di cui hai bisogno
  4. Assicurati che la proprietà sia impostata su root: wheel e permessi a 644.
  5. Disattiva l'elemento originale con ad es. sudo launchctl unload -w /System/Library/LaunchDaemons/org.postfix.master.plist (il -w rende questo permanente).
  6. carica la tua sostituzione personalizzata con ad es. sudo launchctl load /Library/LaunchDaemons/local.org.postfix.master.plist (o solo riavvio).

BTW, se si disabilita semplicemente SIP e si modifica il file esistente, non sarà necessariamente ripristinato da un aggiornamento del SO. Ma potrebbe , e dovresti controllare dopo ogni aggiornamento (inclusi gli aggiornamenti di sicurezza, ecc.), Il che è un problema.

    
risposta data 01.03.2016 - 22:11
fonte

Leggi altre domande sui tag