Quelle est la manière correcte de faire fonctionner Postfix de manière permanente sur Lion (pas sur le serveur)

35

Je peux démarrer Postfix temporairement avec:

$ sudo launchctl
launchd% start org.postfix.master

Cependant, Console.app montre qu'il ne s'exécute que pendant une courte période:

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

Je pense que le fichier /System/Library/LaunchDaemons/org.postfix.master.plist doit être mis à jour pour que Postfix soit exécuté de manière permanente, mais je n'ai pas encore trouvé de réponse.

Quelle est la bonne façon de faire en sorte que Postfix démarre au démarrage et fonctionne de manière permanente?

Mise à jour Afin d'éditer le fichier comme recommandé par la réponse sélectionnée, je l'ai d'abord converti au format XML.

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

Puis vient de l'éditer avec Vim:

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

J'ai eu des problèmes en essayant d'obtenir Xcode pour éditer le fichier.

dkam
la source

Réponses:

36

Les modifications suivantes ont fonctionné pour moi:

  1. Supprimez les deux éléments suivants de /System/Library/LaunchDaemons/org.postfix.master.plist:

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

    Cela l'arrêtera après 60 secondes.

  2. Ajoutez l'élément suivant en tant qu'enfant de l' <dict>...</dict>élément dans le même fichier plist:

    <key>KeepAlive</key>
    <true/>
  3. Recharger le fichier:

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

Postfix devrait maintenant fonctionner en tant que démon.

Ce qui précède fonctionne sur Mountain Lion, Mavericks, Yosemite et El Capitan. Pour les systèmes dotés de la protection de l'intégrité du système (El Capitan et versions ultérieures), deux options sont disponibles:

  1. Copie /System/Library/LaunchDaemons/org.postfix.master.plistà /Library/LaunchDaemons/org.postfix.custom.plist, changer org.postfix.masterpour org.postfix.customet le déchargement et le chargement comme ci - dessus.
  2. Désactiver SIP (utiliser csrutil), effectuer les modifications, puis réactiver SIP.

Remarque: avec High Sierra et Mojave, le fichier de configuration est à la com.apple.postfix.master.plistplace de org.postfix.custom.plist.

mjturner
la source
1
J'ai travaillé pour Mavericks, mais je devais mettre le chemin complet du fichier pour le charger: sudo launchctl load / System
rich
1
Il y avait une cd /System/Library/LaunchDaemonsligne dedans avant le unloadet loadcela a peut-être été manqué. J'ai intégré le chemin complet pour le rendre plus clair.
Jim Stewart
2
@mjturner - désactiver le sip? nope nope nope ... Mieux vaut créer un nouveau fichier .plist que vous possédez dans / Library / LaunchDaemons /
Chris Withers
1
@mjturner - oui, c'est bizarre. Je n'ai reçu aucune notification et c'est un peu triste. Voulez-vous faire la même édition?
Chris Withers
3
@mjturner Sur High Sierra, org.postfix.master.plistest renommé com.apple.postfix.master.plist. Peut-être que vous voudrez peut-être ajouter cela à la réponse.
Utku