Qual é a maneira correta de fazer o Postfix ser executado permanentemente no Lion (não no servidor)

35

Posso iniciar o Postfix temporariamente com:

$ sudo launchctl
launchd% start org.postfix.master

No entanto, o Console.app mostra que ele é executado apenas por um curto período de tempo:

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

Acho que o arquivo /System/Library/LaunchDaemons/org.postfix.master.plist precisa ser atualizado para que o Postfix seja executado permanentemente, mas ainda não encontrei a resposta.

Qual é a maneira correta de obter o Postfix iniciando no momento da inicialização e executando permanentemente?

Atualizar Para editar o arquivo conforme recomendado pela resposta selecionada, eu o convertei primeiro em XML.

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

Depois, edite-o com o Vim:

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

Tive problemas ao tentar obter o Xcode para editar o arquivo.

dkam
fonte

Respostas:

36

As seguintes alterações funcionaram para mim:

  1. Remova os dois seguintes elementos de /System/Library/LaunchDaemons/org.postfix.master.plist:

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

    Isso interromperá a saída após 60 segundos.

  2. Adicione o seguinte elemento como filho do <dict>...</dict>elemento no mesmo arquivo plist:

    <key>KeepAlive</key>
    <true/>
  3. Recarregue o arquivo:

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

O postfix agora deve estar sendo executado como um daemon.

O acima trabalha em Mountain Lion, Mavericks, Yosemite e El Capitan. Para sistemas com Proteção de Integridade do Sistema (El Capitan e posterior), existem duas opções:

  1. Copiando /System/Library/LaunchDaemons/org.postfix.master.plistpara /Library/LaunchDaemons/org.postfix.custom.plist, alterando org.postfix.masterpara org.postfix.custome, em seguida, descarregando e carregando como acima.
  2. Desativando o SIP (usando csrutil), fazendo as edições e reativando o SIP.

Nota: Com High Sierra e Mojave, o arquivo de configuração é em com.apple.postfix.master.plistvez de org.postfix.custom.plist.

mjturner
fonte
1
Trabalhou para mim no Mavericks, mas tive que colocar o caminho completo do arquivo para carregá-lo: sudo launchctl load /System/Library/LaunchDaemons/org.postfix.master.plist
rich
1
Havia uma cd /System/Library/LaunchDaemonsfila lá antes do unloade loadque pode ter sido perdida. Eu descrevi o caminho completo para torná-lo mais claro.
Jim Stewart
2
@mjturner - desativar o gole? Nope Nope Nope ... Muito melhor é apenas para criar um novo .plist que você possui em / Library / LaunchDaemons /
Chris Withers
1
@mjturner - sim, isso é estranho. Não recebi nenhuma notificação e é um pouco triste. Gostaria de fazer a mesma edição?
21816 Chris Withers
3
@mjturner Em High Sierra, org.postfix.master.plisté renomeado para com.apple.postfix.master.plist. Talvez você queira adicionar isso à resposta.
Utku