Movatterモバイル変換


[0]ホーム

URL:


Siirry sisältöön
Wikipedia
Haku

Daemon

Wikipediasta
Tämä artikkeli käsittelee tietokonejärjestelmien taustaprosesseja.Kreikkalaisessa mytologiassadaemon taidaimoni (δαίμων) tarkoittaa suojelushenkeä tai puolijumalaa.

Daemon (palveluprosessi) onUnixissa jaUnixin kaltaisissa käyttöjärjestelmissä taustalla suoritettavajärjestelmäohjelma, jota käyttäjä ei suoraan hallitse.[1] Myös muissamoniajoa tukevissakäyttöjärjestelmissä on vastaava käsite. Käyttöjärjestelmä käynnistää daemonit käynnistyessään (usein, mutta ei aina, ne käynnistääinit) ja niiden tehtävänä on esimerkiksi vastata verkosta tuleviin palvelupyyntöihin (WWW-palvelin-daemon,SSH-palvelin-daemon), hoitaa tulostustöitä tai käynnistää ajastettuja tehtäviä, kutenvarmuuskopioinnin.

Tyypillisesti daemonien nimi päättyy d-kirjaimeen:syslogd huolehtiijärjestelmälokista,sshd saapuvistaSSH-yhteyksistä jacrond ajastetuista tehtävistä.

Unix-daemon

[muokkaa |muokkaa wikitekstiä]

Daemonit ovatprosesseja, jotka elävät pitkän aikaa: ne yleensä käynnistetään järjestelmän käynnistyessä ja sammutetaan järjestelmän sammutuksessa.[2] Daemonit suoritetaan taustalla koska niillä ei ole ohjaavaapäätettä.[2] Koska daemoneilla ei ole ohjaavaa päätettä virheviestien käsittely tapahtuu normaalisti järjestelmälokin avulla.[2]

Daemonien toteutuksessa on eroja tehdäänkö se perinteiselläSystem V -tavalla vai uudellaLinuxissa käytetyllä tavalla.[3] MyösMac OS X:ssä on eroja perinteiseen System V -tapaan verrattuna.[3][4] Uudet ratkaisut kutensystemd jalaunchd tukevat käyttäjäkohtaisien daemonien käynnistämistä (user units,user agents).[5][4]

Minimalistinen daemon-ohjelma[2][6]:

#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>intmain(void){pid_tpid,sid;pid=fork();if(pid<0)exit(EXIT_FAILURE);/* lapsiprosessin luonti epäonnistui */if(pid>0)exit(EXIT_SUCCESS);/* isäntäprosessi poistuu */umask(0);/* tiedosto-oikeudet */sid=setsid();if(sid<0)exit(EXIT_FAILURE);if(chdir("/")<0)exit(EXIT_FAILURE);close(STDIN_FILENO);close(STDOUT_FILENO);close(STDERR_FILENO);/* tee jotain daemonissa */while(1)sleep(10);return(0);}

Daemonin voi käynnistää järjestelmä käynnistyessään, käyttäjä päätteellä taikomentokieliohjelma (skripti).[6] Käynnistyessään se on kuten mikä tahansa suoritettava ohjelma järjestelmässä, mutta autonomiseksi sen tekee lapsiprosessin käynnistäminenfork()-kutsulla.[6] Lapsiprosessin käynnistämisen jälkeen isäntäprosessi voi poistua ja ohjelma jatkaa suoritusta.[6]

Tiedostomaski asetetaanumask()-kutsulla, jolla merkitään pääsy daemonin luomiin tiedostoihin.[6]

Istuntotunniste lapsiprosessille asetetaansetsid()-kutsulla.[6]

Työhakemisto vaihdetaanjuurihakemistoon, joka on taattu olemassa olevaksi ja muut hakemistot voivat poistua mikäli levy otetaan pois käytöstä.[6]

Lisäksi tietyt tiedostokahvat suljetaan koska daemonilla ilman ohjaavaa päätettä ei ole niille käyttöä.[6]

Etymologia

[muokkaa |muokkaa wikitekstiä]

Daemon-nimen keksivät MIT:nProject MAC -ohjelmoijat vuonna 1963.[1] He ottivat nimenMaxwellin demonilta, joka on fyysikkoJames Clerk Maxwellin esittämässä ajatuskokeessa taustalla herkeämättä molekyylejä lajitteleva pieni olento.[7]

Myöhemmin "daemon" on väärin siteeratturetronyymiksi engl. sanoistaDisk And Execution MONitor, ’levy- ja suoritusvalvoja’.[8]

Daemonien vastine Windowsissa

[muokkaa |muokkaa wikitekstiä]

Microsoft Windows -järjestelmissä vastaavankaltaisia ohjelmia kutsutaan palveluiksi (engl.services).[1]

Katso myös

[muokkaa |muokkaa wikitekstiä]

Lähteet

[muokkaa |muokkaa wikitekstiä]
  1. abcDaemon Definition linfo.org. Viitattu 7.9.2021. (englanniksi)
  2. abcdStevens, W. Richard: Advanced Programming in the UNIX Environment, s. 415–425. Addison-Wesley, 1993. ISBN 0201563177 (englanniksi)
  3. abdaemon(7) man7.org. Viitattu 7.9.2021. (englanniksi)
  4. abCreating Launch Daemons and Agents developer.apple.com. Viitattu 7.9.2021. (englanniksi)
  5. systemd/User wiki.archlinux.org. Viitattu 12.9.2021. (englanniksi) 
  6. abcdefghDevin Watson: Linux Daemon Writing HOWTO netzmafia.de. toukokuu 2004. Arkistoitu 27.10.2019. Viitattu 7.9.2021. (englanniksi)
  7. Fernando J. Corbató: Take Our Word for It takeourword.com. 23.1.2002. Viitattu 20.8.2006.
  8. Eric S. Raymond. "daemon" catb.org.
Noudettu kohteesta ”https://fi.wikipedia.org/w/index.php?title=Daemon&oldid=21761815
Luokka:

[8]ページ先頭

©2009-2026 Movatter.jp