Ubuntu Zesty에서는 다음이 작동합니다.

Ubuntu Zesty에서는 다음이 작동합니다.

편집: 이 문제가 발생한 다른 사람에게 이 질문은 실제로 질문/이해가 매우 잘 되지 않으며 문제에 대한 더 나은 설명(및 올바른 해결책)을 찾을 수 있습니다.여기.

Raspberry Pi에서 메일을 설정하려고 합니다. 나는 가지고있다Postfix 설정 및 구성시작 시 스크립트가 /etc/init.d/postfix실제로 업데이트되기 전에 파일을 해당 chroot에 복사하는 것처럼 보이는 점을 제외하면 모든 것이 잘 작동합니다. /etc/resolv.conf이로 인해 DNS 문제로 인해 이메일 전송이 실패할 수 있습니다.

이 글을 더 잘 쓰는 방법이 있어요이 블로그 게시물에서해결 방법(시작 스크립트에 "sleep 5" 삽입)

이런 일이 어떻게/왜 발생하는지(왜 Pi에만 영향을 미칠 수 있는지, 또는 눈에 띄지 않거나 수정되지 않을 정도로 소수의 사람에게만 영향을 미칠 수 있는지) 그리고 버그가 실제로 어디에 있는지(그래서 제기할 수 있는지) 궁금합니다. 이것은 접미사 문제인가요, 아니면 Pi의 무언가가 예상대로 작동하지 않습니까?).

파일 /etc/init.d/postfix상단에 이 항목이 있습니다. (네트워크에 따라 다르다고 합니다. 이것이 resealconf가 완료되기 전에 시작해서는 안 된다는 뜻인지 확실하지 않습니까?)

# Provides:          postfix mail-transport-agent
# Required-Start:    $local_fs $remote_fs $syslog $named $network $time
# Required-Stop:     $local_fs $remote_fs $syslog $named $network
# Should-Start:      postgresql mysql clamav-daemon postgrey spamassassin saslauthd dovecot
# Should-Stop:       postgresql mysql clamav-daemon postgrey spamassassin saslauthd dovecot
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Postfix Mail Transport Agent
# Description:       postfix is a Mail Transport agent

이런 일이 발생하지 않도록 하기 위한 메커니즘은 무엇입니까?

답변1

문제는 우선순위 때문에 발생합니다. postfix 시작이 dhcpcd5보다 일찍 작업을 마치는 것 같습니다.

/etc/resolv.conf가능한 해결책 중 하나는 DHCP 클라이언트가 작업을 마친 후 접미사 감옥에서 문제를 해결하는 것입니다. 디렉토리의 문제를 dhclient해결하기 위해 스크립트를 사용하고 배치하는 것이 좋습니다 ./etc/resolv.conf/etc/dhcp/dhclient-exit-hooks.d

이 디렉터리에 있는 스크립트를 실행합니다.뒤쪽에IP는 다음을 통해 획득되며 dhcp이러한 스크립트는 IP 주소 획득 및/또는 변경 후 필요한 조치를 취하는 데 유용합니다.

사실 이 주제에 관해 질문이 있습니다.ISP 변경 IP 주소를 처리하는 더 나은 방법은 무엇입니까?

데비안 시스템의 관련 패키지는 입니다 isc-dhcp-client. 설치되지 않은 경우 다음을 통해 설치할 수 있습니다.

sudo apt-get install isc-dhcp-client

이제 /etc/network/interfaces이를 사용하려면 수정해야 합니다.

auto eth0
iface eth0

마침내:

sudo dpkg --purge dhcpcd5

실제로 제거한 후 dhcpcd5(@Danny와 함께 /etc/network/interfaces를 구성한 후) 우선 순위가 적용되고 접미사 문제가 해결되었습니다.

그러나 ISP에 직접 연결되어 있고 영구적으로 켜져 있는 컴퓨터의 경우 dhclient-exit-hooks.d에 있는 스크립트를 사용하는 것이 좋습니다. ISP로 인해 IP 주소가 변경될 수 있기 때문입니다.

답변2

Ubuntu Zesty에서는 다음이 작동합니다.

이 수정 사항은 postfix로 업그레이드한 후에 완료해야 할 수도 있습니다. Postscript는 네트워크가 다시 활성화될 때까지 기다리지 않기 때문에 재부팅 후 실패합니다. 이로 인해 /var/spool/postfix/etc/resolv.conf에 복사해야 하는 /etc/resolv.conf의 항목이 손실됩니다.

이러한 시스템 파일의 [Unit] 블록에 다음을 변경 및/또는 추가합니다.

/lib/systemd/system/[email protected]
/lib/systemd/system/postfix.service

추가 또는 변경:

After=network-online.target

서비스 변경 후 systemctl을 다시 로드합니다.

systemctl daemon-reload

reboot

참고: 정말 중요한 파일은 다음과 같습니다.[이메일 보호됨]

답변3

jessie 8.0을 사용하여 내 라즈베리 파이의 /etc/dhcp/dhclient-exit-hooks.d/에 스크립트를 넣어도 아무 일도 일어나지 않았습니다. 실행 가능하게 만드는 것조차 도움이 되지 않습니다. 이 스크립트가 실행되고 있지 않은 것 같습니다.
나에게 이 문제는 systemd, 네트워크 관리자 및 resolvconf로 인해 발생하는 복잡성의 또 다른 나쁜 예입니다.
/etc/rc.local에 줄을 추가해도 작동하지 않습니다.
내 시스템에서 /etc/rc.local을 실행하는 데 18초가 걸렸다는 것을 알았습니다! /etc/resolv.conf가 업데이트되기 전입니다.
Raspberry Pi가 로컬 LAN에 있으므로 /etc/resolv.conf를 변경할 수 없게 만들어 resolvconf 메커니즘을 비활성화했지만 그래도 도움이 되지 않았습니다.
/var/spool/postfix/etc/resolv.conf에 이제 올바른 항목이 있지만 postfix가 여전히 제대로 작동하지 않고 항목이 mqueue에서 "(호스트 또는 도메인을 찾을 수 없습니다. 이름에 대한 이름 서비스 오류=... "com type=MX: 호스트를 찾을 수 없습니다. 다시 시도하십시오.)"
/etc/rc.local에서 다음 줄을 사용하여 30초 지연으로 postfix를 일괄 재시작하려고 시도했지만 ( sleep 30 ; service postfix restart ) &
그것도 작동하지 않습니다
. postfix를 다시 시작하면 메일이 전송되어
항목을 변경하여 마침내 문제가 해결되었습니다.
( sleep 30 ; /etc/init/postfix stop ; sleep 5 ; /etc/init/postfix start ) &

관련 정보