因此,无论我多少次关闭 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
答案1
对你的问题(但不是你的问题)的直接回答是:ps -axjf
。这是a
,x
要查看“所有”进程(请参阅手册页请参阅 了解这些参数的更详细说明)、j
作业格式和f
精美的 ASCII 艺术树。ppid(第一列)显示父进程 ID。
检查特定进程的 PPid 更直接的方法是检查 中的 PPid /proc/<processid>/status
,如下所示:grep PPid /proc/2774/status
。
现在让我们关注你的问题。根据你提供的信息,我猜你正在试图杀死其中一个邮件送货进程(在大多数配置中,exim 会为用户下要传递的每条消息生成一个单独的进程root
)。这些进程使用选项-Mc
。从Exim 手册:
-MC <传输> <主机名> <序列号> <消息 ID>
此选项不适用于外部调用者。它由 Exim 内部使用,用于调用自身的另一个实例,使用现有的 SMTP 连接传递等待消息,该消息作为标准输入传递。这必须是最后一个选项,并且调用者必须是 root 或 Exim 用户才能使用它。
有一个队列运行器进程(通常在 ps 中找到,例如:/usr/local/exim-in/bin/exim -bd -q 10m
在 user 下mail
;不是root
)。可能这是父进程。请注意,exim 通常有多个队列运行器进程。要检查正在发生的事情 - 进程方面 - 您可以使用ps
前面提到的命令。
您可能想要检查邮件队列中排队的消息有哪些(以及原因)。