Portál AbcLinuxu, 10. května 2025 08:13

Dotaz: Zjisteni PID podle nazvu procesu v C

29.10.2011 12:14 xkoder
Zjisteni PID podle nazvu procesu v C
Přečteno: 453×
Odpovědět | Admin
Zdravim, potreboval bych v mem programu v C zjistit dle nazvu procesu jeho PID. Je toto na Linuxu vubec mozne? Nasel jsem postupy, ktere byly funkcni pod *BSD systemy, ale nic pro Linux.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.10.2011 12:32 l4m4
Rozbalit Rozbalit vše Re: Zjisteni PID podle nazvu procesu v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdyby to nešlo, tak by asi nemohl existoval killall, ne?

Projdeš procesy v /proc a přečteš cmdline nebo stat, a když souhlasí název procesu, tak je to on. Samozřejmě může existovat více procesů stejného jména.
29.10.2011 12:34 chrono
Rozbalit Rozbalit vše Re: Zjisteni PID podle nazvu procesu v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Niektoré nástroje PID zisťujú tak, že prechádzajú súbory /proc/[PID]/cmdline (netuším, či existuje aj iný spôsob).

Súčasťou procps je aj knižnica libproc (a tú používajú programy z procps na prístup k tým informáciám).
xkucf03 avatar 29.10.2011 17:43 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Zjisteni PID podle nazvu procesu v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
To, co potřebuješ, dělá příkaz pidof. Což je symbolický odkaz na killall5:
$ ll `which pidof`
lrwxrwxrwx 1 root root 14 2011-05-21 15:30 /bin/pidof -> /sbin/killall5
Takže se stačí podívat na jeho zdroják: killall5.c
/* Try to get the process ID of a given process. */
PIDQ_HEAD *pidof(char *prog)
{
…
}
A samozřejmě můžeš dostat víc PIDů, protože jeden program může být spuštěný víckrát.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
29.10.2011 21:18 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Zjisteni PID podle nazvu procesu v C
Ak ten zdroják dobre chápem, tak sa spolieha na čítanie /proc.
30.10.2011 12:30 luky
Rozbalit Rozbalit vše Re: Zjisteni PID podle nazvu procesu v C
Vzhledem k tomu, ze proc je interface pro ziskavani informaci o procesech, tak to neni moc prekvapujici.

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.