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


7

Ho modificato il valore predefinito org.postfix.master.plist di postfix eseguire come a demone , quindi può inviarmi una e-mail ogni volta che un utente locale riceve una mail.

Predefinito:

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

Modificato:

<?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 è sotto /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 inserire il mio Launch Daemon sotto /Library/LaunchDaemons come secondo?

Risposte:


6

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 es. Aggiungendo "local." All'inizio del nome del file) e modificalo Label valore da abbinare. Se non lo cambi, è probabile che launchd si confonda tra questo e l'originale.
  3. Fai qualsiasi altra modifica tu abbia 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 semplicemente riavviare).

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


La tua soluzione funziona. Cambiare il Label il valore è davvero importante. Altrimenti il ​​demone non si avvierà.
benjaminvonderweiden
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.