Daemon

De la Wiki.lug.ro
Versiunea din 5 februarie 2011 09:57, autor: Rz (Discuție | contribuții) (Pagină nouă: În jargonul Linux și al altor sisteme de operare de tip Unix, un '''daemon''' este un program care rulează în fundal, fără a fi controlat direct de un utilizator. În general, d...)

(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Salt la: navigare, căutare

În jargonul Linux și al altor sisteme de operare de tip Unix, un daemon este un program care rulează în fundal, fără a fi controlat direct de un utilizator. În general, denumirea unui astfel de program se termină cu litera "d". Exemple: syslogd (system log daemon), sshd (secure shell daemon), httpd (http server daemon), ftpd (ftp server daemon) etc.


Metoda uzuală prin care un proces devine daemon implică următoarele:

  • disocierea de terminalul care îl controlează
  • devine lider de sesiune
  • devine lider al unui grup de procese
  • rămâne în fundal prin forking și ieșire (o dată sau de două ori). Aceasta este necesar uneori pentru ca procesul să devină lider de sesiune și permite procesului părinte să-și continue execuția normală
  • stabilește directorul rădăcină ("/") ca director de lucru curent astfel ca procesul nu va bloca alt director care ar putea fi pe un sistem de fișiere montat (permițând astfel demontarea acestuia).
  • schimbarea umask la 0 pentru a permite apelurilor de tip open(), create() etc. să atribuie propriile măști de permisiune și să nu depindă de umask-ul procesului care l-a apelat
  • închiderea tuturor fișierelor moștenite deschise de la procesul părinte la momentul execuției, inclusiv descriptorii de fișier 0, 1 și 2 (stdin, stdout, stderr). Fișierele necesare vor fi deschise ulterior
  • folosirea unui fișier jurnal, a consolei sau a /dev/null ca stdin, stdout și stderr

Echivalentul aproximativ Windows pentru daemon-i sunt serviciile.

Vezi: wikipedia:Daemon (computer software) (în engleză)