sendmail がハングする / メールがハングする

sendmail がハングする / メールがハングする

1 台を除いて、すべてのコンピューターで sendmail は正常に動作します。

すべて /etc/mail config フォルダの設定がまったく同じなので、rsync を使用してすべてが一致していることを確認しました。

通常、このコマンドは問題なく動作します...

sendmail -t < 私のメールファイル.eml

しかし、この 1 台のコンピューター (すべて Ubuntu 20.04 を実行) では、プロセスがハングしてしまいます。

コマンドラインから直接メールを作成できる「sendmail -t」を試しました。CTRL+D までたどり着きましたが、何も起こりません。「mail」コマンドを使ってみました。[メールアドレス]」と入力してメールを作成できましたが、cc: 行に到達するとハングします。CTRL+Z を押すとハングアップし、最終的にメールが送信されます。

sendmail/mail がファイルの最後でハングする原因は何でしょうか?

完全にアンインストールして再インストールする方法はないようです。「apt-get purge sendmail」を試しましたが、システムではアンインストールされたと表示されますが、コマンドラインで sendmail と入力すると、テキスト エディター モードになり、メールが送信されます。また、「whereis sendmail」では、/usr/sbin にあることが示されます。

ここで何が起こっているのか全く理解できません。なぜ EOF でハングするのでしょうか? また、なぜこの 1 台のコンピューターだけなのでしょうか?

ありがとう!

---- 更新 ---- strace の出力の読み方はよくわかりませんが、提案されました。出力はすべてのマシンでほぼ同じに見えますが、この部分は末尾です...

socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = 0
sendto(3, "<18>May  6 12:27:19 sendmail[265"..., 120, MSG_NOSIGNAL, NULL, 0) = 120
write(2, "Program mode requires special pr"..., 69Program mode requires special privileges, e.g., root or TrustedUser.
) = 69
alarm(0)                                = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM], [], 8) = 0
getpid()                                = 26521
setuid(1000)                            = 0
exit_group(78)                          = ?
+++ exited with 78 +++

しかし、停止している 1 台のコンピューターでは、他のコンピューターにはない clock_nanosleep で処理が停止します。

socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = 0
sendto(3, "<18>May  6 12:27:57 sendmail[688"..., 100, MSG_NOSIGNAL, NULL, 0) = 100
clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=60, tv_nsec=0}, 

このサーバー上の sendmail に関する情報は次のとおりです。

$ which sendmail
/usr/sbin/sendmail

$ ls -l $(which sendmail)
lrwxrwxrwx 1 root root 26 Feb  3 15:51 /usr/sbin/sendmail -> /etc/alternatives/sendmail

$ ls -l /etc/alternatives/sendmail
lrwxrwxrwx 1 root root 30 May  6 06:39 /etc/alternatives/sendmail -> /usr/libexec/sendmail/sendmail

他のサーバーのエンドポイントは /usr/lib/sm.bin/sendmail で停止しますが、問題のあるラップトップはすべて ubuntu 22.04 を実行しているのに、なぜ libexec/sendmail で終了するのかわかりません。

答え1

私も同じく 60 秒の遅延でこのワームホールに降りていきました。

syslogdを持っていませんでしたが、インストールした後、/var/log/messagesにこれが表示されました

May 12 17:52:43 myhost mail.crit sendmail[6955]: My unqualified host name (myhost) unknown; sleeping for retry 
May 12 17:52:47 myhost mail.crit sendmail[6960]: My unqualified host name (myhost) unknown; sleeping for retry 
May 12 17:52:52 myhost mail.crit sendmail[6974]: My unqualified host name (myhost) unknown; sleeping for retry

ホスト名 (および /etc/hosts) を FQDN (myhost.localdomain など) に変更してみてください。

関連情報