Por que eu tenho que copiar manualmente o / etc / services e /etc/resolv.conf em / var / spool / postfix / etc?

3

Encontrei este problema com a instalação do Postfix:

link

i.e. Eu estava recebendo o erro:

postfix/smtp[130]: fatal: unknown service: smtp/tcp

e como na URL acima, a solução foi copiar manualmente /etc/services e /etc/resolv.conf para /var/spool/postfix/etc

Minha impressão é que "apenas comecei a acontecer" e anteriormente não era um problema, no entanto eu só fiz pequenas alterações aparentemente não relacionadas ao postfix main.cf, então não entendo o porquê.

Os tutoriais de instalação do Postfix que eu segui não mencionam nada sobre ter que copiar manualmente esses arquivos ... isso parece algo que o Postfix deve fazer sozinho e não é por algum motivo.

Existe algum erro de configuração subjacente que poderia causar isso?

    
por Anentropic 22.01.2015 / 18:43

5 respostas

14

Alguns processos do Postfix estão sendo executados em um ambiente chroot por padrão. Portanto, geralmente há algo para fornecer os arquivos necessários na inicialização.

No meu sistema Debian 7, o arquivo /etc/init.d/postfix possui as seguintes linhas que copiam todos os arquivos necessários dentro do chroot:

FILES="etc/localtime etc/services etc/resolv.conf etc/hosts \
        etc/nsswitch.conf etc/nss_mdns.config"
for file in $FILES; do
     [ -d ${file%/*} ] || mkdir -p ${file%/*}
     if [ -f /${file} ]; then rm -f ${file} && cp /${file} ${file}; fi
     if [ -f  ${file} ]; then chmod a+rX ${file}; fi
done

É estranho que sua instalação não inclua isso; você não deveria fazer nada sozinho aqui.

Como você instalou o postfix e em qual sistema?

    
por 22.01.2015 / 19:20
3

Parece que o Postfix quer executar o chrooted. Consulte aqui para mais informações sobre o que isso significa.

Você pode alterá-lo com a opção de configuração Chroot em /etc/postfix/master.cf .

    
por 22.01.2015 / 19:25
0

Pode ser um problema de tempo com o NetworkManager. Faça o carregamento do postfix mais tarde no processo de inicialização, alterando o nome do arquivo do postfix em /etc/rc {x} .d

Por exemplo:

sudo mv /etc/rc5.d/S20postfix /etc/rc5.d/S92postfix

Você pode ter que mudar isso em todos os seus diretórios /etc/rc{x}.d. Lembre-se de reiniciar para testá-lo.

    
por 02.09.2015 / 15:49
0

Se o arquivo contiver apenas uma linha com o texto "# Generated by resolvconf", é mais provável que seja um problema com a ordem de inicialização.

Primeiro, verifique se "/etc/resolv.conf" contém o servidor de nomes. Se este for o caso, sua rede está configurada corretamente.

Mesmo em distribuições modernas com o systemd, o postfix ainda é inicializado por scripts init.d que são processados durante a inicialização do systemd. Para entender o que está acontecendo durante a inicialização, leia este artigo: link

O postfix é iniciado com a execução de "/etc/rc1.d/K01postfix". Este script contém a seguinte linha para garantir a rede:

# Required-Start:    $local_fs $remote_fs $syslog $named $network $time

E aqui está o problema. Temos que garantir que a rede não esteja apenas ativa, mas também on-line. Caso contrário, o resolv.conf é copiado de "/etc/resolv.conf" antes de ter sido completamente criado.

Isso pode ser feito executando:

systemctl enable systemd-networkd-wait-online.service

Veja também este artigo para uma boa descrição: link

    
por 05.06.2016 / 11:39
-1

Descobri que a solução mais fácil para esse problema foi adicionar um reinício da reinicialização do postfix em /etc/rc.local

    
por 27.01.2017 / 17:10

Tags