[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Prozesse killen



Am Freitag 08 Februar 2008 schrieb Matthias Müller:
> Hallo

Hallo Matthias,

> Am Freitag, 8. Februar 2008 21:13 schrieb Kai Bausch:
> > Hallo zusammen,
> > könnte mir jemand sagen wie man Prozesse mit dem Kommando "kill -9
> > ..." in einem Befehl abschiessen
> > kann wenn man nur den Prozessnamen oder das pidfile kennt?
> >
> > Da gibt es doch sicher einen Einzeiler, oder?
> >
> > Beispiel:
> > Ich habe ein /var/run/programm1.pid  und will nun dem Befehl kill,
> > die pid aus der Datei mitgeben.
>
> Wenn nur die pid drin steht:
> 	kill -9 $(cat /var/run/programm1.pid)
>
> Für den Prozessnamen wirst du wohl um awk oder cut nicht rum kommen

Doch: pidof, pkill, killall, jedoch finden die alle Prozesse mit dem 
angegeben Namen. Wie Dein Beispiel

> Nur als Idee:
> 	kill -9 $(ps -fe | grep prozessname | grep -v grep | cut -f 3 -d" ")

im Prinzip auch. Was jedoch hier gar nicht funktioniert, da zwischen den 
Feldern in das ps-Ausgabe mehrere Leerzeichen sind. Wie ich cut dazu 
bringe, mehrere Whitespaces als Feldtrenner zu akzeptieren, weiß ich noch 
nicht. Ich hab da schonmal gesucht ;-).

Das funktioniert hier:

shambala> ps -fe | grep konqueror | grep -v grep | awk '{print $2}'
3881
3900
3901
3902
18699
28601

shambala> pidof konqueror
28601 18699 3902 3901 3900 3881

(Interessant ist die umgekehrte Sortierung ;-)

Abgesehen sollte man sich jedoch auch überlegen, ob man dem Programm 
wirklich ein SIGKILL schicken muss... ;). Das hört sich so ein wenig nach 
Workaround an ;).

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7


Reply to: