Portál AbcLinuxu, 26. dubna 2024 01:18


Dotaz: PID funkce v bashi..

6.9.2007 19:02 grudge
PID funkce v bashi..
Přečteno: 533×
Odpovědět | Admin
jak spustit funkci v subshellu? Tzn. aby mela vlastni pid: #!/bin/bash FUNC(){ ROUND=0 while :; do echo "round no.$ROUND" && sleep 1 && clear ROUND=$(($ROUND + 1)) done }

FUNC & PID=$!

trap ENDIT INT

ENDIT(){ kill $PID exit 0 }

tohle bohuzel nefunguje jak ma, protoze $! se ulozi jako pid procesu sleep a pri kazdem roundu se zmeni..
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.9.2007 19:08 grudge
Rozbalit Rozbalit vše Re: PID funkce v bashi..
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/bash
FUNC(){
ROUND=0
while :; do
echo "round no.$ROUND" && sleep 1 && clear
ROUND=$(($ROUND + 1))
done
}

FUNC &
PID=$!

trap ENDIT INT

ENDIT(){
kill $PID
exit 0
}
sorry, nejak se mi tam rozes@%$o formatovani..
6.9.2007 23:18 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: PID funkce v bashi..
Problem je jinde, ten PID se predava spravne. Problem je v tom, ze to odchytavani sygnalu INT a nasledne kilnuti provadi skript, ktery se ale hned po spusteni fce FUNC na pozadi ukonci. Vysledkem je, ze vam sygnal INT odchytava samotny bash (ktery s tim samosebou nic delat nebude) a na pozadi vam bezi ta fce FUNC. (Schvalne si zkuste na konec pridat sleep 5, pak vam to bude fungovat jen 5 sekund ;))
There is no point in being so cool in a cold world.
7.9.2007 11:58 grudge
Rozbalit Rozbalit vše Re: PID funkce v bashi..
ah. diky.
7.9.2007 00:48 petris
Rozbalit Rozbalit vše Re: PID funkce v bashi..
Odpovědět | | Sbalit | Link | Blokovat | Admin
vizte help wait nebo man wait

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.