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...)
Î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ă)