Ero sivun ”Prosessi” versioiden välillä
(Raja-anturasta siirretty osittain päällekkäin bg:n ja kill:n kanssa, mutta tässä käsitellään kokonaisuutena.) |
p (→Prosessien tausta-ajo: kh, wikitys) |
||
Rivi 5: | Rivi 5: | ||
=Prosessien tausta-ajo= | =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 | 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 esimerkiksi [[kill|tappaa]] prosessin. | ||
Ohjelman käynnistäminen tausta-ajoon | Ohjelman käynnistäminen tausta-ajoon | ||
xmms & | xmms & | ||
Ohjelman ajaminen tulostaa seuraavaa [työnumero][PID] ohjelmannimi | Ohjelman ajaminen tulostaa seuraavaa: [työnumero][PID] ohjelmannimi | ||
[1][3017] xmms | [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: | 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 & | gmplayer & | ||
Tämä antaa jälleen kerran tulosteeksi työnumeron ja PID:n. | 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. Esimerkiksi: | |||
Pysäytetään ohjelma xmms, joka on käynnistetty ilman "&"-merkkiä | Pysäytetään ohjelma xmms, joka on käynnistetty ilman "&"-merkkiä | ||
xmms | xmms | ||
Painetaan | Painetaan konsolin ollessa aktiivinen ikkuna '''Ctrl+z''' | ||
Konsoliin tulee teksti, joka kertoo prosessin työnumeron, tilan sekä nimen | Konsoliin tulee teksti, joka kertoo prosessin työnumeron, tilan sekä nimen | ||
[1]+ Stopped xmms | [1]+ Stopped xmms | ||
Nyt asetamme ohjelman tausta-ajoon | Nyt asetamme ohjelman tausta-ajoon (katsomme työnumeron edellä tulevasta tulosteesta) | ||
bg %1 | 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 | 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 <tt>[[jobs]]</tt> 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= |
Versio 23. elokuuta 2007 kello 15.05
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 esimerkiksi 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. Esimerkiksi:
Pysäytetään ohjelma xmms, joka on käynnistetty ilman "&"-merkkiä
xmms
Painetaan konsolin 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.