したがって、exim4を何度殺しても、すぐに復活します。私はサービスを停止しましたが、何かがそれを生き返らせ、スパムに使用しています。
誰が犯人であるか、言い換えれば、誰がeximプロセスを開始しているのかをどのように見つけることができますか?
$ ps -ef | grep exim
root 3038 1 0 14:48 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5Mf-0000mt-L7
107 3042 3038 0 14:48 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5Mf-0000mt-L7
root 5083 1 0 14:49 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5N0-0001Jr-88
107 5233 5083 0 14:49 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5N0-0001Jr-88
root 7420 1 0 14:49 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5NR-0001vb-Km
107 7430 7420 0 14:49 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5NR-0001vb-Km
root 7454 1 0 14:49 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5NR-0001wA-Rl
107 7478 7454 0 14:49 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5NR-0001wA-Rl
root 7518 1 0 14:49 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5NS-0001xF-8C
107 7523 7518 0 14:49 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5NS-0001xF-8C
root 8863 1 0 14:50 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5Nm-0002Ir-93
107 8866 8863 0 14:50 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5Nm-0002Ir-93
root 8876 1 0 14:50 ? 00:00:00 /usr/sbin/exim4 -Mc 1YR5Nm-0002J5-Ee
あなたの質問に対する直接の答えは(あなたの問題ではなく)次のようになります:ps -axjf
。これは、「すべての」プロセスを表示するためのa
とx
(これらのパラメーターの詳細な説明については、 manページ を参照)、ジョブ形式の場合はj
、ファンシーな場合はf
ASCIIアートツリー。ppid(最初の列)は親プロセスIDを示します。
特定のプロセスのPPidをチェックするためのより直接的なアプローチは、次のように/proc/<processid>/status
のPPidをチェックすることです:grep PPid /proc/2774/status
。
それでは、問題に焦点を当てましょう。あなたが提供した情報から、あなたはメールdeliveryプロセスの1つを殺そうとしていると思います(ほとんどの構成では、eximは別のプロセスを生成しますユーザーroot
で配信されるメッセージごとに)。これらのプロセスは、-Mc
オプションを使用します。 Eximマニュアル から:
-MC <トランスポート> <ホスト名> <シーケンス番号> <メッセージID>
このオプションは、外部の発信者による使用を目的としたものではありません。これは、Eximによって内部的に使用され、Exim自体の別のインスタンスを呼び出して、標準入力として渡される既存のSMTP接続を使用して待機メッセージを配信します。これは最後のオプションである必要があり、呼び出し元はそれを使用するためにrootまたはEximユーザーである必要があります。
キューランナープロセスがあります(多くの場合、次のようなpsにあります:ユーザーmail
の下の/usr/local/exim-in/bin/exim -bd -q 10m
; root
ではありません)。おそらくそれが親プロセスです。 eximには、多くの場合、複数のキューランナープロセスがあることに注意してください。何が起こっているかを(プロセスごとに)検査するには、前述のps
コマンドを使用できます。
メールキューにキューイングされているメッセージ(およびその理由)を確認することをお勧めします。