Démon (anglicky daemon, výslovnost[1] [ˈdiːmən]IPA nebo [ˈdeɪmən]IPA) je v informatice označení programu, který je spuštěn dlouhodobě a není v přímém kontaktu s uživatelem (na rozdíl od běžných aplikací) a často není ani závislý na tom, zda je uživatel přihlášen. Démon je součástí multitaskingových operačních systémů a obvykle se spouští při startu systému. Jeho úkolem je vyčkávat v nečinnosti na nějakou událost, tu posléze obsloužit a zajišťovat tak různé úkoly bez nutnosti interakce s uživatelem (obsluha počítačové sítě, tiskové fronty a podobně). Techniku správy těchto démonů zajišťuje systém služeb operačního systému.
Termín „démon“ byl zaveden v 60. letech 20. století programátory projektu MAC (Mathematics and Computation) na MIT. Jméno pochází z Maxwellova démona, imaginární postavy slavného myšlenkového experimentu, která neustále pracuje na pozadí a třídí molekuly.[2] Démoni jsou též charakterističtí pro řeckou mytologii, kde někteří z nich vykonávají práce, kterými se bohové nechtějí zatěžovat. Stejně tak počítačový démon pracuje na pozadí a vykonává práce, kterými nechce být uživatel zatěžován. Unixové systémy terminologii převzaly. FreeBSD a některé příbuzné systémy převzaly démona jako svého maskota, avšak tento maskot je jen roztomilým stereotypním zobrazením křesťanského démona.
V pozdější době byl z názvu vytvořen akronym Disk And Execution MONitor – diskový a prováděcí monitor), případně DEvice MONitor – monitor (vstupně-výstupních) zařízení.
Démon je typickým programem v unixových systémech, kde zajišťuje různé systémové funkce. Jeho název obvykle končí na písmeno „d“, čímž se naznačuje jeho status démona (httpd, sshd, syslogd, klogd, ntpd, …). Nejdůležitějším démonem je zde démon init, který má číslo procesu 1 (PID). Je spuštěn při startu jako první (s výjimkou kernel threadů), je rodičem všech ostatních procesů v systému a řídí přechod do nastaveného runlevelu. Je zodpovědný za spuštění skriptů při startu systému, adoptuje procesy, které ztratí svého rodiče (stane se jejich novým rodičem) a plní i další úkoly.
Při programování démona je obvykle využíváno multitaskingu, takže rodičovský démon pouze vyčkává příchodu události, ale neobsluhuje ji sám. Místo toho odštěpí (fork) potomka, který událost obslouží a rodič sám nadále vyčkává příchodu další události. Tento postup zjednodušuje současnou obsluhu více událostí, kdy přenáší odpovědnost za cyklickou obsluhu na operační systém (díky multitaskingu). Dále je vhodné vykonat několik níže uvedených kroků:
/dev/null
a podobněsshd
– server vzdáleného připojení pomocí šifrované komunikace protokolem SSHhttpd
– webový server (nejčastěji Apache)ntpd
– server pro synchronizaci času (OpenNTPD, NTPd)V prostředí novějších Microsoft Windows (Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7) je obdobou démona služba Windows. Má separovaný proces, obvykle nekomunikuje s uživatelskými periferiemi (HID, Human Interface Device; monitor, klávesnice a myš)[3], je spouštěna při startu počítače nebo při prvním požadavku. Uživatel s oprávněními administrátora (správce) může obvykle nastavit různé možnosti startu (automaticky, manuálně anebo zakázat) a další parametry (např. chování po pádu služby). Některé služby jsou ovšem vyžadovány již pro komunikaci se zařízeními třídy HID, typicky služba Workstation (Pracovní stanice); některé umožňují základní funkcionalitu architektury, kupř. služba Server, která řídí ostatní procesy; u těchto služeb není možné jejich spouštění zakázat.
V systému DOS není přímá podpora pro běh více programů zároveň, natož démonů. Přesto v DOSu existují programy, které mohou podobným způsobem pracovat. Označují se jako TSR (anglicky Terminate and Stay Resident, česky ukonči se a zůstaň rezidentní).
Příklady takových správců:[zdroj?]