Pidof

From EIK wiki

Sissejuhatus

Pidof on UNIX süsteemi käsk, mis tagastab töötava programmi protsessinumbri ehk PID (process identificator).[1]

Kirjeldus

Kui kasutaja sisestab UNIX süsteemis ükskõik missuguse käsu (näiteks käivitab programmi), siis luuakse või käivitatakse uus protsess. UNIX peab arvestust kõigi protsesside üle, mis süsteemis käivitatakse. Igal protsessil on unikaalne (vaikimisi ühe- kuni viiekohaline)[2] number ehk PID, mille järgi saab protsessi masinast üles leida.[3]

Pidof käsk otsib programmi nime järgi töötava programmi PID ja prindib need PID standardväljundisse.[4]

Pidof käsku on soovitav kasutada juurkasutaja õigustes, sest tavakasutaja õigustes olles ei pruugi see kõikide programmide protsesse tagastada.[5]

Süntaks

Pidof käsu süntaks on:

pidof [programm]

Käsk tagastab kõik nimetatud programmi PID.

või

pidof [võti] [programm]

Pidof käsu võtmed on:[6]

-s Üksiktulem (single shot): käsk tagastab nimetatud programmi ühe (esimese) PID.

-c Üksnes sama juurkataloog: käsk tagastab nimetatud programmi üksnes need PID, mis töötavad samas juurkataloogis. Seda võtit saab kasutada ainult juurkasutaja, teiste puhul seda ignoreeritakse, sest tavakasutajal puuduvad õigused näha, millised temale mittekuuluvad protsessid juurkataloogis töötavad.

-x Skriptid samuti (scripts too): käsk tagastab nimetatud skriptide PID. Ilma võtmeta käsk ja teised võtmed ignoreerivad skripte.[7]

-o Jäta välja (omit): käsk tagastab kõik nimetatud programmi PID, v.a selle PID, mis käsu võtmes määratakse. Välja jäetavaid PID võib sisestada mitu. Selle võtmega võib kasutada ka spetsiaalset PID %PPID, mis tähistab pidof programmi vanemaprotsessi ehk protsessi, mis selle programmi käivitas. See on kasulik näiteks siis, kui on soov protsesse loendada, kuid seejuures mitte arvesse võtta pidof programmi ennast.[8]

Samal ajal võib kasutada mitut võtit.

Näited

Allolevate näidete puhul on kasutaja käivitanud nano programmi neli korda ja igale seeläbi käivitunud protsessile on süsteemi poolt antud oma unikaalne PID. Kokku on süsteemis seega neli nanoga seotud PID: 2456 2457 2489 2567. Kõik PID on aktiivsed.


Kõikide nano PID saamiseks tuleb kasutada käsku: pidof nano

Tulem: 2456 2457 2489 2567
Selgitus: Tulemis tagastatakse kõik neli PID.


Ühe nano PID saamiseks tuleb kasutada käsku: pidof –s nano

Tulem: 2456
Selgitus: Tulemis tagastatakse vaid üks (kõige esimene) PID.


Kõikide, v.a käsus nimetatud, nano PID saamiseks tuleb kasutada käsku: pidof –o 2456 nano

Tulem: 2457 2489 2567
Selgitus: Tulemis tagastatakse kolm PID, sest käsus oli määratud üks PID, mida väljundis ei kuvata.

Kokkuvõte

Kõiki süsteemi PID on võimalik näha käsuga ps -ef, kuid huvi pakkuvad programmid ja protsessid tuleb sellisel juhul ise väljundist üles otsida. Otsingut võib automatiseerida, kasutades näiteks käsku |grep nano, kuid praktikas on olemas ka lihtsam lahendus. Pidof käsk võimaldab kõik spetsiifilise programmiga seotud PID kerge vaevaga süsteemist üles leida, pakkudes seejuures võtmete näol täiendavat funktsionaalsust. Leitud PID võib näiteks kasutada protsesside ja seeläbi ka programmi töö lõpetamiseks.

Kasutatud materjalid

1. http://linux.about.com/library/cmd/blcmdl8_pidof.htm
2. http://www.cyberciti.biz/tips/howto-linux-increase-pid-limits.html
3. http://www.eenet.ee/EENet/assets/docs/tigu/tigu.2.html#protsessid
4. http://linux.die.net/man/8/pidof
5. http://www.cyberciti.biz/faq/linux-pidof-command-examples-find-pid-of-program
6. https://blog.jay2k1.com/2011/11/30/bash-how-to-check-if-your-script-is-already-running/
7. http://www.tutorialspoint.com/unix/unix-processes.htm

Autor

Jevgeni Pogodin A51
Sügis 2014

Siim Jurkatam AK21
Sügis 2015