Ero sivun ”Prosessi” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Ei muokkausyhteenvetoa
(Raja-anturasta siirretty osittain päällekkäin bg:n ja kill:n kanssa, mutta tässä käsitellään kokonaisuutena.)
Rivi 2: Rivi 2:
*[[wikipedia:fi:Prosessi|Prosessi Wikipediassa]]
*[[wikipedia:fi:Prosessi|Prosessi Wikipediassa]]
Käynnissä olevia ohjelmia sanotaan prosesseiksi. Jotkut sovellukset saattavat käyttää useita prosesseja. Prosessit yksilöidään [[PID]]-numeroilla. Jokaista prosessia on myös mahdollista ajaa omalla prosessorilla (rinnakkaistus).
Käynnissä olevia ohjelmia sanotaan prosesseiksi. Jotkut sovellukset saattavat käyttää useita prosesseja. Prosessit yksilöidään [[PID]]-numeroilla. Jokaista prosessia on myös mahdollista ajaa omalla prosessorilla (rinnakkaistus).
=Prosessien tausta-ajo=
Otetaan esimerkkitilanne, jossa haluat ajaa kahta ohjelmaa päällekkäin. Toinen on graafinen videonkatseluohjelma [[gmplayer]] ja toinen on musiikintoisto-ohjelma [[xmms]]. Normaalisti konsolissa kirjoittaisit vain ohjelman nimen ja ohjelma käynnistyisi, jos tämä prosessi kuitenkin halutaan tausta-ajoon siten että samasta terminaalista voidaan käynnistää useita ohjelmia, tulee sen perään liittää "&"-merkki. Kun olet kirjoittanut ohjelman nimen "&"-merkin kanssa, tulostaa konsoli sinulle ohjelman "työnumeron" sekä PID:n joiden avulla voit myöhemmin esim. tappaa prosessin.
Ohjelman käynnistäminen tausta-ajoon
xmms &
Ohjelman ajaminen tulostaa seuraavaa [työnumero­][PID] ohjelmannimi
[1][3017] xmms
Noin, nyt voimme heti perään käynnistää toisen ohjelman - sen gmplayerin jonka alunperin halusimme tulevan samaan aikaan ajoon. Tämä tapahtuu aivan identtisellä tavalla:
gmplayer &
Tämä antaa jälleen kerran tulosteeksi työnumeron ja PID:n. On myös toinen tapa lähestyä tausta ajoa, jos olemme käynnistäneet ohjelman ilman "&"-merkkiä ja haluamme sen tausta-ajoon. Voit yksinkertaisesti käyttää näppäimistöä asettamaan käynnissä olevan prosessin (joka tukkii terminaalin) pysähdyksiin painamalla CTRL+Z tämän jälkeen saat prosessin tausta-ajoon kirjoittamalla konsoliin [[bg]] %työnumero. Käytännössä ensin ohjelma pysäytetään ja sen jälkeen asetetaan tausta-ajoon. Esimerkki alla:
Pysäytetään ohjelma xmms, joka on käynnistetty ilman "&"-merkkiä
xmms
Painetaan konsolen ollessa aktiivinen ikkuna '''Ctrl+z'''
Konsoliin tulee teksti, joka kertoo prosessin työnumeron, tilan sekä nimen
[1]+ Stopped xmms
Nyt asetamme ohjelman tausta-ajoon, katsomme työnumeron edellä tulevasta tulosteesta
bg %1
Prosessin saa myös nostettua etualalle painamalla "%työnumero" tai "[[fg]] %työnumero" Noniin, nyt osaamme asettaa prosessit tausta-ajoon ja käynnistää kaksi ohjelmaa peräkkäin. Entä se tilanne kun haluamme ajaa kymmeniä ohjemia päällekäin, emmekä muista suoraan ohjelmien työnumeroita. Komento "jobs"-auttaa tässä tilanteessa, kirjoittamalla terminaaliin tuon komennon, saamme listauksen kaikista töistämme ja niiden työnumeroista. Tämän jälkeen komennolla"bg %n" saamme asetettua ohjelmat tausta-ajoon.
=Ohjelmien tappaminen=
Ohjelmien tappaminen on seuraava mielenkiinnon aiheemme. On todennäköistä, että joskus GNU/Linuxia käyttäessäsi ohjelma jää jumiin ja sinulla ei ole muuta keinoa kuin tappaa tämän ohjelman prosessi. Prosessin tappaminen tapahtuu komennolla "[[kill]] %työnumero" tai "kill PID". Ohjelman PID:n saat esimerkiksi komennolla "pstree -p" tai [[top]], jotka käynnistävät ohjelman. Ottakaamme esimerkiksi PID:n hakemisessa ohjelma pstree ja tappakaamme jumittunut xmms-prosessi.
Katsotaan käynnissä olevien prosessien määrä
jobs
Tulostus näyttää tämäntapaiselta
[1]+ running [3333] xmms
[2]+ running [3434] gkrellm
[3]+ running [3344] gmplayer
Tapetaan prosessi työnumeron mukaan (gkrellm)
kill %2
Tuloste näyttää tämäntapaiselta
[2]+ exit 1 gkrellm
Otetaan pstree-tuloste PID:n mukaan ja tapetaan PID:n avulla xmms-prosessi
pstree -p
Tuloste (tulostetta kutistettu)
fluxbox(428)-+-Eterm(603)---bash(606)---irssi(7+
                                            |-Eterm(1215)---bash(1218)---irssi+
                                            |-Eterm(7868)---bash(7871)
                                            |-Eterm(11586)---bash(11590)---irs+
                                            |-Eterm(21647)---bash(21650)-+-pst+
                                            |                            `-wis+
                                            |-MozillaFirebird(20617)---Mozilla+
                                            |-dcgui-qt(21267)---dcgui-qt(21270+
                                            |-soffice.bin(21722)---soffice.bin+
                                            |-ssh-agent(466)
                                            |-wish(9520)---wish(9521)---wish(9+
                                            `-'''xmms(25068)'''---xmms(25070)-+-xmms+
                                                                        |-xmms+
                                                                        |-xmms+
                                                                        |-xmms+
                                                                        `-xmms+
Katsotaan PÄÄLLIMMÄISEN xmms-prosessin PID ja tapetaan se (prosessi lihavoitu)
kill 25068
Nyt prosessi on kuollut ja ohjelman pitäisi olla sulkeutunut.
==Katso myös==
*[[bg]], lisää tietoa tausta-ajosta
*[[kill]], lisää tietoa ohjelmien tappamisesta


[[Luokka:Käsitteet]]
[[Luokka:Käsitteet]]

Versio 23. elokuuta 2007 kello 01.30

Linux.fi-wikissä artikkelit käsittelevät yleensä aihettaan siltä osin, kuin se koskee Linuxia ja avoimia/vapaita ohjelmistoja. Yleisluontoisemman artikkelin tästä aiheesta löydät tietosanakirja Wikipediasta.

Käynnissä olevia ohjelmia sanotaan prosesseiksi. Jotkut sovellukset saattavat käyttää useita prosesseja. Prosessit yksilöidään PID-numeroilla. Jokaista prosessia on myös mahdollista ajaa omalla prosessorilla (rinnakkaistus).

Prosessien tausta-ajo

Otetaan esimerkkitilanne, jossa haluat ajaa kahta ohjelmaa päällekkäin. Toinen on graafinen videonkatseluohjelma gmplayer ja toinen on musiikintoisto-ohjelma xmms. Normaalisti konsolissa kirjoittaisit vain ohjelman nimen ja ohjelma käynnistyisi, jos tämä prosessi kuitenkin halutaan tausta-ajoon siten että samasta terminaalista voidaan käynnistää useita ohjelmia, tulee sen perään liittää "&"-merkki. Kun olet kirjoittanut ohjelman nimen "&"-merkin kanssa, tulostaa konsoli sinulle ohjelman "työnumeron" sekä PID:n joiden avulla voit myöhemmin esim. tappaa prosessin.

Ohjelman käynnistäminen tausta-ajoon

xmms &

Ohjelman ajaminen tulostaa seuraavaa [työnumero­][PID] ohjelmannimi

[1][3017] xmms

Noin, nyt voimme heti perään käynnistää toisen ohjelman - sen gmplayerin jonka alunperin halusimme tulevan samaan aikaan ajoon. Tämä tapahtuu aivan identtisellä tavalla:

gmplayer &

Tämä antaa jälleen kerran tulosteeksi työnumeron ja PID:n. On myös toinen tapa lähestyä tausta ajoa, jos olemme käynnistäneet ohjelman ilman "&"-merkkiä ja haluamme sen tausta-ajoon. Voit yksinkertaisesti käyttää näppäimistöä asettamaan käynnissä olevan prosessin (joka tukkii terminaalin) pysähdyksiin painamalla CTRL+Z tämän jälkeen saat prosessin tausta-ajoon kirjoittamalla konsoliin bg %työnumero. Käytännössä ensin ohjelma pysäytetään ja sen jälkeen asetetaan tausta-ajoon. Esimerkki alla:


Pysäytetään ohjelma xmms, joka on käynnistetty ilman "&"-merkkiä

xmms

Painetaan konsolen ollessa aktiivinen ikkuna Ctrl+z

Konsoliin tulee teksti, joka kertoo prosessin työnumeron, tilan sekä nimen

[1]+ Stopped xmms

Nyt asetamme ohjelman tausta-ajoon, katsomme työnumeron edellä tulevasta tulosteesta

bg %1 

Prosessin saa myös nostettua etualalle painamalla "%työnumero" tai "fg %työnumero" Noniin, nyt osaamme asettaa prosessit tausta-ajoon ja käynnistää kaksi ohjelmaa peräkkäin. Entä se tilanne kun haluamme ajaa kymmeniä ohjemia päällekäin, emmekä muista suoraan ohjelmien työnumeroita. Komento "jobs"-auttaa tässä tilanteessa, kirjoittamalla terminaaliin tuon komennon, saamme listauksen kaikista töistämme ja niiden työnumeroista. Tämän jälkeen komennolla"bg %n" saamme asetettua ohjelmat tausta-ajoon.

Ohjelmien tappaminen

Ohjelmien tappaminen on seuraava mielenkiinnon aiheemme. On todennäköistä, että joskus GNU/Linuxia käyttäessäsi ohjelma jää jumiin ja sinulla ei ole muuta keinoa kuin tappaa tämän ohjelman prosessi. Prosessin tappaminen tapahtuu komennolla "kill %työnumero" tai "kill PID". Ohjelman PID:n saat esimerkiksi komennolla "pstree -p" tai top, jotka käynnistävät ohjelman. Ottakaamme esimerkiksi PID:n hakemisessa ohjelma pstree ja tappakaamme jumittunut xmms-prosessi.

Katsotaan käynnissä olevien prosessien määrä

jobs

Tulostus näyttää tämäntapaiselta

[1]+ running [3333] xmms
[2]+ running [3434] gkrellm
[3]+ running [3344] gmplayer

Tapetaan prosessi työnumeron mukaan (gkrellm)

kill %2

Tuloste näyttää tämäntapaiselta

[2]+ exit 1 gkrellm

Otetaan pstree-tuloste PID:n mukaan ja tapetaan PID:n avulla xmms-prosessi

pstree -p

Tuloste (tulostetta kutistettu)

fluxbox(428)-+-Eterm(603)---bash(606)---irssi(7+
                                            |-Eterm(1215)---bash(1218)---irssi+
                                            |-Eterm(7868)---bash(7871)
                                            |-Eterm(11586)---bash(11590)---irs+
                                            |-Eterm(21647)---bash(21650)-+-pst+
                                            |                            `-wis+
                                            |-MozillaFirebird(20617)---Mozilla+
                                            |-dcgui-qt(21267)---dcgui-qt(21270+
                                            |-soffice.bin(21722)---soffice.bin+
                                            |-ssh-agent(466)
                                            |-wish(9520)---wish(9521)---wish(9+
                                            `-xmms(25068)---xmms(25070)-+-xmms+
                                                                        |-xmms+
                                                                        |-xmms+
                                                                        |-xmms+
                                                                        `-xmms+

Katsotaan PÄÄLLIMMÄISEN xmms-prosessin PID ja tapetaan se (prosessi lihavoitu)

kill 25068

Nyt prosessi on kuollut ja ohjelman pitäisi olla sulkeutunut.

Katso myös

  • bg, lisää tietoa tausta-ajosta
  • kill, lisää tietoa ohjelmien tappamisesta