Em suma, um Daemon é um processo em segundo plano .
Daemons podem ser apenas programas normais executados em segundo plano, mas a maioria é criada iniciando um processo, forçando-o e saindo do pai.
Forçar um processo significa criar uma cópia exata dele. O pai desse processo, se o pai real termina imediatamente, é agora o processo init em /sbin/init
, que é a primeira coisa que começou em cada operação Unix-like sistema. Agora, o processo é chamado de Daemon, não possui um TTY associado a ele.
Aqui está um exemplo de um Daemon em Python:
import sys, os, time
pid = os.fork()
# there now exist two processes
if pid > 0: # If this is the parent,
sys.exit(0) # quit.
# this is the background part:
time.sleep(5)
print "Hello, World!"
Ainda não é um, estritamente falando. Você também teria que alterar o diretório de trabalho atual, redigir a entrada e a saída padrão para os arquivos de log e assim por diante. Você pode ler os detalhes do artigo da wikipedia .
Se você executar o exemplo, observará, após dois segundos, a impressão, mesmo que o processo iniciado na linha de comando tenha terminado. A cópia deste processo é executada 'por' init agora.