Portál AbcLinuxu, 12. května 2025 07:26

Dotaz: Zjištění zda běží PID v C

16.7.2008 14:19 pivo231 | skóre: 6
Zjištění zda běží PID v C
Přečteno: 490×
Odpovědět | Admin
Zdravím, potřeboval bych radu, jak v C zjistím, zda běží proces určitého PID. Resp. mi jde o to, abych nemohl jednoho daemona spustit víckrát.

Mám daemona který po spuštění ukládá PID getpid() do souboru. Při dalším spuštění toto PID načte a teď bych potřeboval funkci která ověří, zda daný proces běží.

Nechci to řešit na úrovni shellu.

Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 16.7.2008 14:23 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Zjištění zda běží PID v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
kill(pid, 0)
16.7.2008 14:39 pivo231 | skóre: 6
Rozbalit Rozbalit vše Re: Zjištění zda běží PID v C
Díky, to mi stačí.
20.7.2008 22:36 edois
Rozbalit Rozbalit vše Re: Zjištění zda běží PID v C
jeste bacha na to, ze pod tim pidem muze davno bezet uplne jiny proces, obecne bych to asi resil pres /proc filesystem, kde si i zjistim, jestli je dany proces opravdu ten proces, ktery si myslim, ze to je.
29.7.2008 13:55 pivo231 | skóre: 6
Rozbalit Rozbalit vše Re: Zjištění zda běží PID v C
Ano, na to jsem myslel. Kontroloval jsem zda link /proc/$PID/exe odkazuje na moji binarku.

Ve finale jsem to ale vyresil jinak. Daemon si soubor s PID uzamyka zamkem a pri dalsim spusteni kontroluje zda zamek stale existuje.
29.7.2008 17:40 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Zjištění zda běží PID v C
Řešení přes zámek je poměrně běžné a řekl bych, že je i vhodnější než hledání v tabulce procesů.

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.