Eu ouço muita conversa sobre Daemons rodando no meu computador Ubuntu - o que são?
Em resumo, um Daemon é um processo em segundo plano .
Os daemons podem ser apenas programas normais executados em segundo plano; no entanto, a maioria é criada iniciando um processo, bifurcando-o e saindo do pai.
Forçar um processo significa criar uma cópia exata dele. O pai desse processo, se o pai real terminar imediatamente, agora é o processo init/sbin/init
, que é a primeira coisa iniciada em todos os sistemas operacionais do tipo Unix. Agora, o processo é denominado Daemon, não possui TTY associado.
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, a rigor. Você também teria que alterar o diretório de trabalho atual, redict a entrada e saída padrão para arquivos de log e assim por diante. Você pode ler os detalhes sangrentos neste artigo da wikipedia .
Se você executar o exemplo, notará que, após dois segundos, ele é impresso, mesmo que o processo iniciado na linha de comando tenha terminado. A cópia deste processo é executada 'por' init agora.
/proc/*/fd
). Um daemon bem comportado se desconectará completamente do tty, abandonando as alças para stdout, stderr e stdin.Como você pode ver a camada do Daemon
fonte