PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prüfen welcher Prozess bereits läuft



Schmolleg
10.12.07, 00:45
Hallo Leute !

Ich möchte einen Shell-Script schreiben welcher einen Dienst startet. Jetzt kann dieser Dienst aber erst gestartet werden solange er nicht schon läuft. Und da ich ihn nicht immer manuell killen möchte soll der Script herausfinden welche PID der hat und den Prozess killen.

Nur wie bekomme ich die PID raus von dem Prozess heraus ?

moedule
10.12.07, 01:10
entweder du hast dich nicht verständlich ausgedrückt oder es ist wirklich so einfach ...

kill `ps ax|grep name_des_prozesses |awk '{print $1}'`

moe

marce
10.12.07, 05:51
entweder du hast dich nicht verständlich ausgedrückt oder es ist wirklich so einfach ...

kill `ps ax|grep name_des_prozesses |awk '{print $1}'`

moe
ich würde folgende Änderung vorschlagen:

kill `ps ax|grep [n]ame_des_prozesses |awk '{print $1}'`

ansonsten gibt es viele weitere Möglichkeiten...

Z.B.: Du schreibst von "Dienst" - wenn das ein regulärer Dienst der Distribution ist so hat er sicherlich schon ein Start-Stop-Script - dann würde ich das verwenden...

HEMIcuda
10.12.07, 09:09
Nur wie bekomme ich die PID raus von dem Prozess heraus ?


pidof $task

'cuda

moedule
10.12.07, 20:54
pidof $task

'cuda

ist doch langweilig :-)

Veierabend
10.12.07, 21:04
Wenn der Programmname einzigartig ist und nur einmal auftaucht tuts auch ein
killall $Prozessname dann braucht man keine PID zum killen :D

Schmolleg
10.12.07, 21:32
jo danke pidof ist mein Freund :-)

HEMIcuda
11.12.07, 08:28
Wenn der Programmname einzigartig ist und nur einmal auftaucht tuts auch ein
killall $Prozessname dann braucht man keine PID zum killen :D

Oder pkill :)

unux
11.12.07, 10:20
ls /var/run|grep DIENSTNAME*.pid|perl -e '$f=<STDIN>;chomp($f);if(-f$f){open(F,$f);$f=<F>;chomp($f);kill(15,$f)};sleep(1);if(kill(0,$f)){ki ll(9,$f);}'

ich steh auf Einzeiler :ugly:

Greetz UnuX

PS.: funktioniert natürlich nur bei Prozessen die brav ne PIDFile anlegen...