So che i daemon vengono eseguiti in background, per lo più richiedono un'interazione molto inferiore da parte dell'utente.Quali sono le differenze comportamentali tra un demone e un processo normale?
Wikipedia lists alcuni dei tipi di demoni che comunemente esistono:
- Dissociare dal terminale di controllo
- Diventare un leader di sessione
- Diventare un leader del gruppo processo
- Soggiornare in background fork e uscendo (una o due volte). A volte ciò è richiesto affinché il processo diventi leader di sessione. Permette inoltre al processo padre di continuare la sua normale esecuzione. Questo idioma viene a volte sintetizzato con la frase "fork off and die"
- Impostazione della directory root ("/") come directory di lavoro corrente in modo che il processo non conservi alcuna directory in uso che potrebbe trovarsi su un file system montato (permettendo che sia smontato).
- Cambiare la umask a 0 per consentire open(), creat(), et al. chiama per fornire le proprie maschere di autorizzazione e non dipende dalla umask del chiamante
- Chiude tutti i file aperti ereditati al momento dell'esecuzione che vengono lasciati aperti dal processo padre, inclusi i descrittori di file 0, 1 e 2 (stdin, stdout, stderr). I file richiesti verranno aperti in seguito.
- Utilizzando un file di log, la console, o/dev/null come stdin, stdout e stderr
Voglio sapere se ci possono essere differenze di comportamento in un demone come differenziato da un processo normale, a parte quello che ho menzionato nella prima riga. Entrambi i tipi di processi svolgono il loro lavoro e interagiscono con l'utente in base alla quantità di interazione di cui hanno bisogno per svolgere il proprio lavoro.
C'è altro daemon?
quindi se eseguo un processo da una shell come '$ process &', qualifica come demone? – Lazer
Direi di no: è solo un processo in background. È ancora associato al tuo terminale, anche se l'output viene temporaneamente soppresso e se il programma viene eseguito a tempo indeterminato, probabilmente è stato scritto pensando all'interattività. Un demone si stacca automaticamente dal terminale in cui è avviato e viene scritto con l'aspettativa di non-interattività. –