Jaki jest prawidłowy sposób, aby Postfix działał na stałe na Lionie (nie na serwerze)

35

Mogę tymczasowo uruchomić Postfix za pomocą:

$ sudo launchctl
launchd% start org.postfix.master

Jednak Console.app pokazuje, że działa tylko przez krótki czas:

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

Myślę, że plik /System/Library/LaunchDaemons/org.postfix.master.plist wymaga aktualizacji, aby Postfix działał na stałe, ale nie znalazłem jeszcze odpowiedzi.

Jaki jest właściwy sposób, aby Postfix zaczynał się w czasie uruchamiania i działał na stałe?

Aktualizacja Aby edytować plik zgodnie z zaleceniami wybranej odpowiedzi, najpierw przekonwertowałem go na XML.

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

Następnie edytowałem go za pomocą Vima:

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

Miałem problemy z próbą zmuszenia Xcode do edycji pliku.

dkam
źródło

Odpowiedzi:

36

Dla mnie zadziałały następujące zmiany:

  1. Usuń następujące dwa elementy z /System/Library/LaunchDaemons/org.postfix.master.plist:

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

    To zatrzyma wyjście po 60 sekundach.

  2. Dodaj następujący element jako element podrzędny <dict>...</dict>elementu w tym samym pliku plist:

    <key>KeepAlive</key>
    <true/>
  3. Załaduj ponownie plik:

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

postfix powinien teraz działać jako demon.

Powyższe działa na Mountain Lion, Mavericks, Yosemite i El Capitan. W przypadku systemów z ochroną integralności systemu (El Capitan i nowsze) dostępne są dwie opcje:

  1. Kopiowanie /System/Library/LaunchDaemons/org.postfix.master.plistdo /Library/LaunchDaemons/org.postfix.custom.plist, zmiana org.postfix.masterna, org.postfix.customa następnie rozładowywanie i ładowanie jak wyżej.
  2. Wyłączanie SIP (używanie csrutil), wprowadzanie zmian, a następnie ponowne włączanie SIP.

Uwaga: w przypadku High Sierra i Mojave plik konfiguracyjny jest com.apple.postfix.master.plistzamiast org.postfix.custom.plist.

mjturner
źródło
1
Pracowałem dla mnie na Mavericks, ale musiałem podać pełną ścieżkę do pliku, aby go załadować: sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist
rich
1
Było cd /System/Library/LaunchDaemonslinia tam przed unloadi loadktóre mogły zostać pominięte. Wytyczyłem pełną ścieżkę, aby była jaśniejsza.
Jim Stewart
2
@mjturner - wyłączyć sip? nope nope nope ... Dużo lepiej jest po prostu stworzyć nowy .plist, który posiadasz w / Library / LaunchDaemons /
Chris Withers
1
@mjturner - tak, to dziwne. Nie dostałem żadnego powiadomienia i jest to trochę smutne. Chcesz dokonać tej samej edycji?
Chris Withers
3
Nazwa @mjturner On High Sierra org.postfix.master.plistzostała zmieniona na com.apple.postfix.master.plist. Może chcesz dodać to do odpowiedzi.
Utku