PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prozess-ID automatisch auslesen?


WhiteVelvet
2006-06-13, 11:43:32
Ich möchte gerne eine Batchdatei schreiben, die automatisch einen Prozess killt und automatisch wieder neustartet. Bisher muss ich erst ps eintippen, die PID suchen, merken, killen und den Prozess neu starten. Kann Linux irgendwie die PID herausfinden, wenn man den Namen des Prozesses angibt? Diese Prozess ist 4x vorhanden, also müsste der erste Prozess gefunden werden.

nggalai
2006-06-13, 11:48:46
Das sollte mit pidof gehen:

killall ${pidof programmname}

piepre
2006-06-13, 11:53:55
entweder ließt du den Inhalt der entsprechenden .pid-Datei unter /var/run aus, oder machst etwas ähnliches wie: ps -A | awk '/apache2/ {print $1}'

edit: hui, pidof kannte ich noch gar nicht, damit geht es natürlich noch einfacher :)

WhiteVelvet
2006-06-13, 11:59:50
Klappt leider nicht. Nach

killall ${pidof processxyz}

gibt er mir die Syntax-Usage zurück, ohne Fehlermeldung allerdings. Prozess läuft aber noch.

(del676)
2006-06-13, 12:07:15
bei killall reicht der prozessname
z.b.
killall xchat

WhiteVelvet
2006-06-13, 12:22:21
Dann sagt er "killall: Could not kill pid '818': No such process" und dasselbe 3x weil es 3 solcher Prozesse gibt, komisch...

WhiteVelvet
2006-06-13, 12:35:20
Ah, hat sich erledigt, klappt doch. Er hatte den Prozess 1 terminiert und dadurch wurden die anderen 3 auch terminiert, was er so schnell nicht mitbekommen hat. Danke für den Tip!

Harleckin
2006-06-13, 15:55:24
$ pkill evilprocess


außerdem gibt's noch..

$ man xkill