編集:この問題が発生した他の人にとって、この質問は実際には質問/理解が非常にうまくいかず、問題のより良い説明(および正しい解決策)を見つけることができます。ここ。
Raspberry Piでメールを設定しようとしています。私は持っていますPostfixの設定と設定起動時にスクリプトが/etc/init.d/postfix
実際に更新される前にファイルをそのchrootにコピーするように見えることを除いて、すべてがうまく機能します。/etc/resolv.conf
これにより、DNSの問題により電子メールの送信が失敗する可能性があります。
この記事をよりよく書く方法があります。このブログ投稿から回避策(スタートアップスクリプトに「スリープ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
考えられる解決策の1つは、DHCPクライアントが作業を終えた後にサフィックス刑務所で問題を解決することです。ディレクトリの問題をdhclient
解決するためにスクリプトを使用して配置することをお勧めします。/etc/resolv.conf
/etc/dhcp/dhclient-exit-hooks.d
このディレクトリにあるスクリプトを実行します。後ろにIPは以下を介して取得され、dhcp
これらのスクリプトはIPアドレスの取得および/または変更後に必要なアクションを実行するのに役立ちます。
実際、このトピックについて質問があります。ISPの変更IPアドレスを処理するためのより良い方法は何ですか?
Debian システムの関連パッケージは です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
注:本当に重要なファイルは次のとおりです。[Eメール保護]
答え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: ホスト
が見つかりません。再試行してください( sleep 30 ; service postfix restart ) &
。
"メールが送信され、
アイテムを変更して最終的に問題を解決しました。
( sleep 30 ; /etc/init/postfix stop ; sleep 5 ; /etc/init/postfix start ) &