Perché devo copiare manualmente / etc / services e /etc/resolv.conf in / var / spool / postfix / etc?

Ho riscontrato questo problema con l'installazione di Postfix:

https://www.virtualmin.com/node/23909

cioè stavo ricevendo l'errore:

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

e come all'URL sopra, la soluzione era copiare manualmente /etc/services e /etc/resolv.conf in /var/spool/postfix/etc

La mia impressione è che questo "ha appena iniziato a succedere" e in precedenza non è stato un problema, tuttavia ho solo fatto piccole modifiche apparentemente non correlate al postfix main.cf, quindi non capisco perché.

Le istruzioni di installazione di Postfix che seguivano non menzionano niente di wherer copiare manualmente questi file … questo sembra come qualcosa che Postfix dovrebbe fare da solo e non è per qualche motivo.

C'è qualche errata configuration che causerebbe questo?

  • far Postfix a bcc mail due volte
  • Postfix pensa che l'IP sia nella list nera, ma non è effettivamente elencato nella blacklist
  • Installazione e manutenzione di un server di posta elettronica
  • Come posso get postfix per submit posta a diversi host di relè?
  • Postfix / Dovecot support più domini
  • postfix header_checks usando la corretta installazione di regexp
  • Come indirizzare alcuni account di posta elettronica di un dominio con mappe di trasporto ad un altro MX se l'utente non esiste localmente?
  • Aggiungendo un record MX per l'inoltro della posta elettronica conflitto con un provider di posta elettronica come sendgrid
  • 5 Solutions collect form web for “Perché devo copiare manualmente / etc / services e /etc/resolv.conf in / var / spool / postfix / etc?”

    Alcuni processi Postfix vengono eseguiti in un ambiente chroot per impostazione predefinita. Di conseguenza, di solito c'è qualcosa per fornire loro i file necessari all'avvio.

    Nel mio sistema Debian 7, il file /etc/init.d/postfix ha le seguenti righe che copiano tutti i file necessari all'interno del 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 

    È strano che la tua installazione non include questo; non dovresti fare nulla da soli qui.

    Come hai installato postfix e su quale sistema?

    Sembra che Postfix vuole eseguire chroot. Vedere qui per maggiori informazioni su ciò che significa.

    Puoi cambiarla con l'opzione di configuration Chroot in /etc/postfix/master.cf .

    Può essere un problema temporale con NetworkManager. Effettuare il caricamento del postfix nel process di avvio modificando il nome del file postfix in /etc/rc{x}.d

    Per esempio:

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

    Potrebbe essere necessario modificarlo in tutti i directory /etc/rc{x}.d. Ricordarsi di riavviare per verificarlo.

    Se il file contiene solo una row con il text "# Generato da resolvconf", è probabilmente un problema con l'ordine di avvio.

    Controllare prima se "/etc/resolv.conf" contiene il nameserver. In questo caso la networking è configurata correttamente e in su.

    Anche su distribuzioni moderne con systemfix postfix è attualmente ancora avviato da init.d script che vengono elaborati durante l'avvio di sistema. Per capire cosa sta succedendo durante l'avvio, leggere questo articolo: https://unix.stackexchange.com/questions/233468/how-does-systemd-use-etc-init-d-scripts

    Postfix viene avviato eseguendo "/etc/rc1.d/K01postfix". Questo script contiene la seguente row per garantire la networking:

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

    Ed ecco il problema. Dobbiamo assicurarci che la networking non sia solo in su ma anche in linea. Altrimenti il ​​resolv.conf viene copiato da "/etc/resolv.conf" prima che sia stato completamente creato.

    Ciò può essere fatto eseguendo:

     systemctl enable systemd-networkd-wait-online.service 

    Vedere anche questo articolo per una buona descrizione: https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

    Ho scoperto che la soluzione più semplice a questo problema per me era aggiungere un riavvio del riavvio postfix in /etc/rc.local

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.