Pidof: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Sissejuhatus ==
== Sissejuhatus ==
'''Pidof''' - käsu, mis otsib töötava programmi protsessi ID (PID) nimi järgi.
'''Pidof''' on UNIX süsteemi käsk, mis tagastab töötava programmi protsessinumbri ehk PID (''process identificator'').[http://linux.about.com/library/cmd/blcmdl8_pidof.htm]


[[File:Pidof-command.jpg|thumb|Pidof]]
== 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)[http://www.cyberciti.biz/tips/howto-linux-increase-pid-limits.html] number ehk PID, mille järgi saab protsessi masinast üles leida.[http://www.eenet.ee/EENet/assets/docs/tigu/tigu.2.html#protsessid]
 
Pidof käsk otsib programmi nime järgi töötava programmi PID ja prindib need PID standardväljundisse.[http://linux.about.com/library/cmd/blcmdl8_pidof.htm]
 
Pidof käsku on soovitav kasutada juurkasutaja õigustes, sest tavakasutaja õigustes olles ei pruugi see kõikide programmide protsesse tagastada.[http://www.cyberciti.biz/faq/linux-pidof-command-examples-find-pid-of-program]
 
== Süntaks ==
Pidof käsu süntaks on:
 
<code>pidof [programm]</code>
 
Käsk tagastab kõik nimetatud programmi PID. <br>
<br>
või <br>
<br>
<code>pidof [võti] [programm]</code>


== Süntaksis ==
Pidof käsu võtmed on:[http://linux.die.net/man/8/pidof]
Pidof käsku süntaksis on
<font size=2>
<source lang="bash">
pidof [-s] [-c] [-x] [-o omitpid] [-o omitpid..] program [program...]
</source>
* <code>-s</code> Single shot - otsib ainult üks PID
* <code>-c</code> Tagastab ainult neid PID's, mis töötavad samal juurkataloogil. Seda parameetrit ignoreerib non-root kasutajat ning nad ei saa kontrollida praegune protsessi juurkataloogi, mis nad ei oma 
* <code>-x</code> Otsib töötava skriptide PID
* <code>-o omitpid</code> Jätta protsessi selle omitPID'iga, mis tuleb välistada. Võib kasutada erilist PID %PID, et nimetada '''Pidof''''i käsu ''parent'' protsessi
</font>


== Kirjeldus ==
<code>-s</code> Üksiktulem (''single shot''): käsk tagastab nimetatud programmi ühe (esimese) PID.
Pidof otsib töötava programmi protsessi ID (PID) nimi järgi. Pidof trükkitab välja ID'id standardile väljundile (the standard output). Seda programmi kasutatakse mõnel süsteemil nägu ''run-level change scripts'' siis , kui süstemil on ''System-V'' nägu rc struktuur. Sellel juhul neid skripte asuvad /etc/rc?.d kataloogil, kus ? on ''run-level''. Kui süsteemil on ''start-stop-daemon'' programm, siis neid on vaja kasutada.
 
<code>-c</code> Ü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.
 
<code>-x</code> Skriptid samuti (''scripts too''): käsk tagastab nimetatud skriptide PID. Ilma võtmeta käsk ja teised võtmed ignoreerivad skripte.[http://www.cyberciti.biz/faq/linux-pidof-command-examples-find-pid-of-program]


Pidof see on sama programm nägu ''killall5''. Tavaliselt Pidof on ''/sbin/killall5'' sümbolne link.
<code>-o</code> 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.[https://blog.jay2k1.com/2011/11/30/bash-how-to-check-if-your-script-is-already-running/]


'''Exit staatus''' (output)<br>
Samal ajal võib kasutada mitut võtit.
1.) Vähemalt üks programm oli leitud taotletude nimega <br>
2.) Mitte midagi oli leitud taotletude nimega


== Näited ==
== Näited ==
* Ilma parameetrita
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: <code>2456 2457 2489 2567</code>. Kõik PID on aktiivsed. <br>
<font size=2>
 
<pre>
 
$ pidof php5-cgi
Kõikide nano PID saamiseks tuleb kasutada käsku: <code>pidof nano</code>
2427 2426 2424 2423 2418 2387 2386 2385 2384 2383 2241 2240 2238 2237 2223
 
</pre>
Tulem: <code>2456 2457 2489 2567</code> <br>
</font>
Selgitus: Tulemis tagastatakse kõik neli PID.
* Pidof koos -s
 
<font size=2>
 
<pre>
Ühe nano PID saamiseks tuleb kasutada käsku: <code>pidof –s nano</code>
$ pidof -s php5-cgi
 
2427
Tulem: <code>2456</code> <br>
</pre>
Selgitus: Tulemis tagastatakse vaid üks (kõige esimene) PID.
</font>
 
* Pidof koos -x
<font size=2>
<pre>
$ pidof -x fetch-data
</pre>
Leiab PID, mis käivitatakse skripti nimega ''fetch-data''
</font>
* Pidof koos -o
<font size=2>
Otsib kõik lighttpd PID'id #4242 PID'ita
<pre>
$ pidof -o 4242 lighttpd
</pre>
Võib kasutada veel eriline PID ''%PID'' skriptil
<source lang='bash'>
#!/bin/bash
list=$(pidof -o %PPID lighttpd)
for p in $list
do
  echo "Killing $p..."
  kill -TERM $p
done
</source>
</font>


== Kasutatud kirjandus ==
Kõikide, v.a käsus nimetatud, nano PID saamiseks tuleb kasutada käsku: <code>pidof –o 2456 nano</code>
 
Tulem: <code>2457 2489 2567</code> <br>
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 <code>ps -ef</code>, kuid huvi pakkuvad programmid ja protsessid tuleb sellisel juhul ise väljundist üles otsida. Otsingut võib automatiseerida, kasutades näiteks käsku <code>|grep nano</code>, 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 <br>
1. http://linux.about.com/library/cmd/blcmdl8_pidof.htm <br>
2. http://linux.die.net/man/8/pidof <br>
2. http://www.cyberciti.biz/tips/howto-linux-increase-pid-limits.html <br>
3. http://man7.org/linux/man-pages/man1/pidof.1.html <br>
3. http://www.eenet.ee/EENet/assets/docs/tigu/tigu.2.html#protsessid <br>
4. http://www.cyberciti.biz/faq/linux-pidof-command-examples-find-pid-of-program/  
4. http://linux.die.net/man/8/pidof <br>
5. http://www.cyberciti.biz/faq/linux-pidof-command-examples-find-pid-of-program <br>
6. https://blog.jay2k1.com/2011/11/30/bash-how-to-check-if-your-script-is-already-running/ <br>
7. http://www.tutorialspoint.com/unix/unix-processes.htm


== Autor ==
== Autor ==
Jevgeni Pogodin A51 <br>
Jevgeni Pogodin A51 <br>
Sügis 2014
Sügis 2014
Siim Jurkatam AK21 <br>
Sügis 2015


[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 13:23, 3 January 2016

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