Wie finde ich heraus, wer (welcher Prozess) einen anderen Prozess startet?

4786
David Coch

Egal wie oft ich exim4 töte, es wird sofort wieder lebendig. Ich habe den Dienst eingestellt und alles andere als etwas erweckt ihn zum Leben und verwendet ihn zum Spammen.

Wie finde ich heraus, wer der Täter ist, dh wer den Exim-Prozess startet?

$ 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 
4
Sie könnten versuchen, die Exim-Binärdatei einzuschränken (zum Mitnehmen ausführen) und dann dmesg zu überprüfen, um zu sehen, welche App sich darüber beschwert. Frank Thomas vor 9 Jahren 0
Das ist eine großartige Idee, Frank. Wie mache ich dmesg? David Coch vor 9 Jahren 0
hängt von deinem System ab, aber von meiner Debian-Box ist es `sudo tail / var / log / dmesg`. auf Ubuntu kann man einfach "Schwanz dmesg" sagen. und vergessen Sie nicht, andere Protokolle zu überprüfen. auch. Das Debug-Protokoll wird möglicherweise nicht über diesen Fehler benachrichtigt, hoffentlich jedoch sys oder messages. Frank Thomas vor 9 Jahren 0
Ich bin auf UBUNTU. `/ Var / log / dmesg` und` / var / log / syslog` prüfen, aber nichts sehen. Sind Sie sicher, dass dieser Berechtigungsfehler dort angezeigt wird? David Coch vor 9 Jahren 0
wie ich schon sagte, nicht immer. Es ist Sache des Entwicklers zu entscheiden, ob Debugmeldungen geschrieben werden sollen oder nicht. Überprüfen Sie stattdessen die Protokolle sys / messages / auth und sehen Sie, was Sie sehen. Frank Thomas vor 9 Jahren 0

1 Antwort auf die Frage

6
agtoever

Eine direkte Antwort auf Ihre Frage (aber nicht Ihr Problem) wäre: ps -axjf. Das ist aund xum "alle" Prozesse zu sehen (siehe Manpage für eine ausführlichere Erklärung dieser Parameter), jfür das Job-Format und ffür den ausgefallenen ASCII-Kunstbaum. Die PPID (erste Spalte) zeigt die übergeordnete Prozess-ID.

Ein direkterer Ansatz, um die ppid eines bestimmten Prozesses zu prüfen wäre, die PPID zu lesen /proc/<processid>/status, wie folgt aus : grep PPid /proc/2774/status.

Konzentrieren wir uns jetzt auf Ihr Problem. Ich schätze, dass Sie mit den von Ihnen bereitgestellten Informationen versuchen, einen der E-Mail- Übermittlungsprozesse zu beenden (in den meisten Konfigurationen erzeugt exim einen separaten Prozess für jede unter dem Benutzer zuzustellende E-Mail root). Diese Prozesse nutzen die -McOption. Aus dem Exim-Handbuch :

-MC <Transport> <Hostname> <Sequenznummer> <Nachrichten-ID>

Diese Option ist nicht für die Verwendung durch externe Anrufer vorgesehen. Es wird intern von Exim verwendet, um eine andere Instanz von sich selbst aufzurufen, um eine wartende Nachricht über eine vorhandene SMTP-Verbindung zu übermitteln, die als Standardeingabe übergeben wird. Dies muss die letzte Option sein, und der Aufrufer muss root oder der Exim-Benutzer sein, um sie verwenden zu können.

Es gibt einen Queue Runner-Prozess (häufig in ps wie: /usr/local/exim-in/bin/exim -bd -q 10munder user mail; not root). Wahrscheinlich ist das der übergeordnete Prozess. Beachten Sie, dass exim häufig mehr als einen Warteschlangenläuferprozess hat. Um zu überprüfen, was los ist, können Sie den oben pserwähnten Befehl verwenden.

Möglicherweise möchten Sie überprüfen, welche Nachrichten sich in Ihrer Mail-Warteschlange befinden (und warum).