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: