PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix killen



steve-bracket
20.11.02, 09:36
Hallo

Ne kurze Frage.
Hab nen Postfix Mailserver laufen.

bislang ist mir dieser "einmal" abgestürzt. (eigenes Verschulden - trotzdem)

Wie schaff ich es ohne Neustart des OS den Mailserver wieder zum laufen zu bringen.
(auf Suse 8)

Kann ich nen abgestürzten Dienst killen oder ähnliches, um in darauf wieder neu zu starten oder so ????????

Danke für die Antwort

fG Steve

HangLoose
20.11.02, 09:43
moin

ja kannst du. zunächst brauchst du die PID vom jeweiligen prozess. die kannst du mit pidof <prozess>
rausfinden. anschließend als root kill -9 <pid>

viel spaß beim *killen* ;)


Gruß HangLoose

pippi
20.11.02, 09:45
hallo!

wie jetzt, du meinst mit abgestürzten diensten programme, die ein "Z" in der prozesstabelle haben sozusagen und die auf ein "kill" nicht mehr reagieren? und ein susiges "rcpostfix (re)start" nichts bringt, weil schon ein postfix rumgeistert im system?

wenn du das meinst, dann geht das meines wissens nicht. ich habe mal gelesen, daß ein UNIX (war es solaris?) in einer neueren version gezielt solche zombieprozesse entfernen kann. unter linux hilft hier nur der neustart, fürchte ich.

belehrt mich gerne eines besseren, auch mir würde dann so mancher neustart weniger passieren :)

/pippi

HangLoose
20.11.02, 09:58
hi pippi

probier es mal aus => kill -9 ist ne mächtige waffe ;)


ps: nicht gespeicherte daten gehen dabei allerdings verloren.


Gruß HangLoose

pippi
20.11.02, 10:04
hallo HangLoose!

bist du dir sicher, daß das "kill -9 BLA" auch auf Zombies anzuwenden ist? also ich kann es nicht beschwären, aber ich habe das gefühl, daß das nicht in allen fällen hilft, sondern nur bei prozessen, die eben noch kein "z" in der prozesstabelle haben. hmm, jetzt hab ich grade keinen zombie parat, aber ich beobachte das mal, vielelicht täuscht mein Gedächtnis mich hier ja auch.

viele grüße von der pippi

HangLoose
20.11.02, 10:11
moin moin



Original geschrieben von pippi
hallo HangLoose!

bist du dir sicher, daß das "kill -9 BLA" auch auf Zombies anzuwenden ist? also ich kann es nicht beschwären, aber ich habe das gefühl, daß das nicht in allen fällen hilft, sondern nur bei prozessen, die eben noch kein "z" in der prozesstabelle haben. hmm, jetzt hab ich grade keinen zombie parat, aber ich beobachte das mal, vielelicht täuscht mein Gedächtnis mich hier ja auch.

viele grüße von der pippi

also mit kill -9 konnte ich bis jetzt jedes abgestürzte proggi abschießen. ob diese allerdings ein z in der prozesstabelle hatten, kann ich dir nicht sagen.
es ist nur manchmal nicht so einfach die richtige pid rauszufinden. ;)


Gruß HangLoose

steve-bracket
20.11.02, 10:52
Thanks for the response.

Das mit der PID ist genau das Problem.

Habs mit "ps aux|grep postfix" versucht finde den Prozess aber nicht wirklich.

Andere Dienste (zb Apache) habe ich schon mal gekillt -- erfolgreich.
Unter welchem Prozessnamen läuft den Postfix.




Und von welchem Z in der Prozesstabelle redet ihr. (welche Spalte)

fG steve

pippi
20.11.02, 10:57
hallo!

das "z" von dem ich redete, ist dieses hier:

ich@rechner ~ > ps fax
ps fax
PID TTY STAT TIME COMMAND
1 ? S 0:04 init
132 ? Z 1:36 postfix

=> Ist nur so ausgedacht jetzt, das beispiel.

Z wie zombie, also ein prozess, der eigentlich nicht existieren kann, weil er tot sein müßte /tot ist. aber eben trotzdem im speicher rumhühnert.

/pippi
:o

steve-bracket
20.11.02, 11:53
Danke für die erklärung


Zur PID

Ich finde keinen Postfix Prozess -- glaube auch zu wissen warum

Das ganze läuft doch über die INITD und der Mailserver ist ja nur dann aktiv
wenn gerade ein Mail verschickt wird.
(mail verschicken -->> prozess starten
mail ist verschickt -->> prozess stoppen)

wenns wer besser weiß -->> nur heraus damit

Danke fG Steve

pippi
20.11.02, 12:38
hallo!

also wenn du in deiner /etc/inetd.conf einen eintrag hast wie

===
smtp stream tcp nowait root blablablabla
===

, dann wird (sofern der inetd gestartet ist) automatisch port 25 von eben jenem belegt und das in dieser Zeile eingetragene programm bei einem CONNECT auf port 25 gestartet. wie praktisch ;)

ein "telnet localhost 25" sollte da klarheit bringen, denn da müsste sich dann ja der soeben frisch gestartete PostFix -Server melden.

aber du hast recht: kein postfix, keine pid :)

/pippi

steve-bracket
20.11.02, 12:52
tagchen
Ja klar, standardmässig läuft der Mailserver auf Inetd.

Die Frage ist nun.
wo finde ich den Postfix Prozess.
Oder läuft der Postfix Prozess unter anderem Namen zB unter Sendmail.
Postfix greift ja auf einen teil von Sendmail zu.


Reicht es wenn ich den inetd Deamon kille oder oder oder.......


heul
Ich will meine Linux Kiste nicht neu starten. Nicht nach 4 monaten problemlosem laufen.
(und durch meine Blödheit - musste mich ja mit nem Mailgate Virenscanner spielen obwohl ich nicht 100%ig bescheid wußte).

:mad:

Na ja Schönen Dank für die bisherigen Tipps

fG Steve

HangLoose
20.11.02, 12:58
hi

versuch doch mal ein kill -HUP <pidof inetd>

steve-bracket
20.11.02, 14:00
Jep es hat geklappt.

Danke für den Tipp, es war wirklich der inetd.

Nochmal für alle die dieses Forum durchstöbern.

Wenn ein Dienst der über inetd angesteuert wird abstürzt (returncode 1 vom Programm -->> praktisch ein Geist im System)
dann entweder den INETD mit "kill <inetdprozessnummer>" und/oder mit "kill -HUP <inetdprozessnummer>" gewaltsam beenden.


Dann sollte sich der abgestürzte Dienst wieder mit dem Startscript Starten/Stoppen lassen.

Schönen Dank an alle die hier mitgeholfen haben.
Ihr habt mir nen Neustart erspart.

fG Steve

steve@net-base.at
www.net-base.at

Lotussteve
21.11.02, 10:49
Hallo!

Leider zu spät, aber zur Info:

Postfix läuft nicht in einem einzigen Prozess namnes "postfix" oder "sendmail", sondern teilt sich (auch aus Sicherheitsgründen) in verschiedene Unterprozesse wie "qmgr" etc... auf.



Ciao,

Steve