PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PID bei Programmstart auslesen und ablegen



formtapez
24.06.04, 09:34
Hallo !

Wenn ich Bash-Programmen schreibe und Anwendungen aufrufe, möchte ich diese auch gezielt wieder beenden können.
Wie kann ich bei einem Programmstart (z.B. "cat /dev/urandom > /tmp/blablub.dat &") die PID auslesen und zum späteren Beenden des Prozesses ablegen ?

MfG
formtapez

Blackhawk
24.06.04, 10:01
$$ ist die PID...

also echo $$ > /var/dumbo.pid

formtapez
24.06.04, 11:45
Hallo !

Erstmal vielen Dank.

Ich habe mal ein kleines Script geschrieben um es zu testen:


#!/bin/bash

cat /dev/urandom > test.dat &
echo $$ > test.pid
echo "PID ist: " `cat test.pid`
sleep 2
kill `cat test.pid`

Leider ist die PID aber nicht von "cat", sondern etwas anderem (warscheinlich das Script selber).

Wie komme ich nun an die PID von cat ?

MfG
formtapez

Blackhawk
24.06.04, 13:35
kill `ps aux | grep " cat$"`

formtapez
24.06.04, 16:40
cat$ ist bei mir leer...

Noch ne andere Idee ?

MfG
formtapez

alexm
24.06.04, 17:43
pidof(8)

.. na toll "die eingegeben textlänge ist zu kurz.." blabla - so ein nonsense

formtapez
24.06.04, 18:50
Vielen Dank.

So funktioniert es nun:

#!/bin/bash

cat /dev/urandom > test.dat &
echo `pidof -s cat` > test.pid
sleep 2
kill `cat test.pid`

MfG
formtapez

Jasper
24.06.04, 18:55
Wie komme ich nun an die PID von cat ?


mit '$!', $$ liefert die pid der shell.


-j