Ohjelmointi Unixissa, luku 5 Erä- ja tausta-ajot:

Erä- ja tausta-ajot

Unix-tietokoneissa voi ajaa tausta-ajoja tai käynnistää ohjelmia at-komennolla haluamaansa aikaan esim. yöllä (ks. man at).

Usein käyttäjä haluaa samanaikaisesti sekä ajaa jotakin ei-vuorovaikutteista ohjelmaa että työskennellä vuorovaikutteisesti, esimerkiksi editoida. (Ei-vuorovaikutteisella tarkoitetaan ohjelmaa, joka ei lue päätteeltä eikä tulosta päätteelle. Tarvittaessa voidaan päätetulostus estää kääntämällä tulostus tiedostoon.)

Tämä on mahdollista siten, että ei-vuorovaikutteinen ohjelma käynnistetään tausta-ajona: käynnistyskomennon loppuun kirjoitetaan & (et-merkki), esim.

ajo <ajo.input >ajo.output &

Jos tausta-ajo yrittää tulostaa päätteelle, se useimmissa Unix-järjestelmissä keskeytyy eli "suspendoituu". Päätetulostus voidaan kuitenkin sallia komennolla stty -tostop ja kumota komennolla stty tostop.

Tausta-ajon päätyttyä tulostuu päätteelle ilmoitus, joka sisältää hakasuluissa olevan numeron (prosessin numeron), sanan Done ja käynnistyskomennon. Ilmoitus tulostuu kuitenkin vain oltaessa komentotasolla. Jos siis ollaan esim. editoimassa, niin ilmoitus saadaan vasta, kun editorista on poistuttu.

Käyttäjä voi lopettaa pääteistunnon (logout), vaikka hänellä olisi tausta-ajoja pyörimässä - ne jäävät pyörimään.

Käyttäjällä voi olla useita samanaikaisia tausta-ajoja. Ei kuitenkaan ole mitenkään suotavaa esim. ajaa rinnakkain samaa ohjelmaa eri lähtötiedoilla. Sellainen ryöstää resursseja muilta käyttäjiltä.