logo

Daemon Linux

O que é um daemon?

Um daemon é um tipo de programa em sistema operacional semelhante ao UNIX que é executado em segundo plano discretamente, em vez de mediante acesso direto de um usuário. Espera ser acionado pelo aparecimento de uma condição ou evento específico.

Normalmente, os sistemas do tipo UNIX executam vários daemons, principalmente para acomodar solicitações de serviços por meio de outros sistemas na rede, para atividades de hardware e também para responder a outros programas.

Exemplos de condições ou ações que podem ativar daemons na atividade podem ser uma data ou hora específica, passagem de um intervalo de tempo descrito, recebimento de uma solicitação da web ou e-mail criado a partir de uma linha de comunicação específica e um arquivo chegando a um diretório específico.

travessia inorder da árvore binária

Não é obrigatório que o perpetrador de uma condição ou ação saiba que o daemon está ouvindo.

No entanto, os programas frequentemente implementariam uma ação apenas porque sabem que ela ativaria um daemon implicitamente.

Um daemon também é chamado de processos em segundo plano. É um programa UNIX ou Linux executado em segundo plano. Quase todo daemon contém nomes que terminam com a letra 'd'. Por exemplo, sshd, gerencia conexões de acesso remoto SSH, ou o daemon httpd que gerencia o servidor Apache. Freqüentemente, o Linux inicia daemons na hora de inicialização.

Vários scripts de shell são salvos dentro do diretório /etc/init.d. Esses scripts são usados ​​para iniciar e parar daemons.

Processos Linux

Normalmente, os daemons são instanciados como processos. Esses processos são as instâncias em execução ou em execução de um programa. Um processo é controlado pelo kernel, que é o núcleo do sistema operacional, e atribui todos os números especiais de identificação do processo.

No Linux, existem principalmente três tipos comuns de processos que são os seguintes:

  • Lote
  • Interativo
  • Demônio

O processo em lote é enviado por meio de uma fila de processos e não está relacionado à linha de comando. Esses processos são adequados para realizar operações recorrentes se o uso do sistema for baixo.

O processo interativo é executado interativamente pelo usuário na linha de comando.

como converter de int para string em java

O daemon é identificado por um sistema como aqueles processos cujo processo pai contém um PID igual a um.

Sempre, define o processo init. O processo init é o processo inicial iniciado quando um sistema Linux é inicializado e permanece no sistema até que ele seja desligado.

O init pode adotar qualquer tipo de processo cujo processo pai termine ou morra sem esperar pelo status do processo filho.

Portanto, a técnica básica para iniciar o daemon é dividir ou bifurcar duas ou uma vez e também permitir que os processos pais terminem enquanto o processo filho começa a implementar sua função geral.

História dos Demônios

Alguns daemons são publicados por scripts de inicialização do System V. Estes são scripts ou programas curtos que podem ser executados automaticamente se o sistema estiver inicializando. Eles podem ser reproduzidos em intervalos ou sobreviver durante a sessão.

Agora, vários daemons são iniciados apenas quando necessário e por um daemon (xinetd) em vez de serem executados continuamente. O xinetd é conhecido como superservidor TCP/IP.

Ele é iniciado no momento da inicialização e também escuta várias portas atribuídas aos processos listados no arquivo de configuração, ou seja, /etc/xinetd.conf ou /etc/inetd.conf.

Manualmente, alguns daemons também podem ser iniciados para serem iniciados pelos programas aplicativos e sistema operacional. Todos os daemons possuem um script individual em vários sistemas operacionais do tipo UNIX, incluindo Linux, com o qual podem ser reiniciados e encerrados.

O gerenciamento desses scripts é implementado de acordo com níveis de execução. O nível de execução pode ser definido como um estado operacional ou de configuração de um sistema que permite apenas a disponibilização de alguns processos selecionados. Começar em um nível de execução distinto pode oferecer suporte à solução de determinados problemas ou questões, incluindo a retificação de erros do sistema.

Pontos-chave dos Daemons

Alguns pontos-chave importantes dos Daemons são explicados abaixo:

  • A palavra daemon é tirada da metodologia grega daemon. Estes eram seres sobrenaturais que se situam entre os mortais e os deuses e que possuíam um poder ou conhecimento único.
  • Em 1963, o termo daemon foi inicialmente aplicado dentro de um contexto de sistema no projeto pioneiro MAC com a ajuda do IBM 7094.
  • Foi inspirado no demônio da termodinâmica e da física de Maxwell, que era um agente abstrato que suportava moléculas de velocidades distintas e trabalhava incansavelmente em segundo plano.
  • Depois disso, o termo foi usado para descrever os processos de fundo que funcionavam incansavelmente na implementação das tarefas do sistema.
  • O primeiro computador daemon foi um programa que criava backups em fita automaticamente.
  • Este termo foi utilizado para uso em computador. Era uma forma abreviada de Disk and Execution MONitor.
  • Vários programas chamados serviços, as funções dos daemons no sistema operacional Microsoft Windows. No entanto, a palavra daemon às vezes também é aplicada a esses sistemas.

Implementação de Daemons

Sistemas tipo Unix

O processo do sistema semelhante ao Unix é um daemon se seu processo pai morrer e este daemon for nomeado o processo init (processo número 1) como o processo pai e não contiver nenhum terminal de controle de maneira estritamente técnica.

No entanto, um daemon pode ser qualquer processo em segundo plano, seja ele filho do processo init ou não.

A técnica básica para um procedimento torna-se um daemon no sistema semelhante ao UNIX quando o procedimento é iniciado através da linha de comando ou scripts de inicialização como o script System Starter ou o script init, envolve:

Arquitetura de 32 bits versus 64 bits
  • Excluir variáveis ​​desnecessárias através do ambiente opcionalmente.
  • Executando como tarefa em segundo plano saindo e bifurcando. Ele permite que o pai do daemon (processo de inicialização ou shell) receba notificações de saída e continue a execução normal.
  • Desanexando através da seção de invocação, geralmente realizado por uma operação individual, setsid():
    • Dissociando-se através do controle tty.
    • Criar uma sessão mais recente e tornar-se o líder da sessão.
    • Tornando-se o líder do grupo de processos.
  • Se o daemon desejar ter certeza de que não herdará um novo controle tty, ele poderá sair e bifurcar novamente. Isso significa que não há mais nenhum líder de sessão dentro da nova sessão e não pode herdar nenhum controle tty.
  • Definir o diretório de trabalho atual como o diretório raiz para que o processo não use nenhum diretório em uso que possa estar em um sistema de arquivos montado.
  • Modificando o umask para 0 para permitir create(), open() e outras chamadas do sistema operacional para facilitar sua máscara de permissão e não depender de todo o umask do chamador.
  • Redirecionando os descritores de arquivo 0, 1 e 2 para os fluxos padrão (stderr, stdout, stdin) para um arquivo de log ou /dev/null e fechando todos os outros arquivos descritores adquiridos por meio do processo pai.

Quando o processo começa por qualquer daemon de superservidor como systemd, launchd ou inetd, o superservidor implementará essas funções para este processo, exceto aqueles daemons de estilo antigo não transformados em execução no systemd e descritos como servidores de datagramas multithreaded e Type=forking no inetd.

string está vazia

MS DOS

O programa semelhante a um daemon foi executado como software de encerramento e permanência residente (em resumo, TSR) dentro da plataforma Microsoft DOS.

Windows NT

Programas conhecidos como serviços do Windows implementam as funções desses daemons nos sistemas Microsoft Windows NT. Eles são executados como processos e geralmente não interagem com o mouse, o teclado e o monitor. Eles podem ser iniciados com a ajuda do sistema operacional no momento da inicialização.

Os serviços do Windows são interrompidos, iniciados e configurados manualmente pelo Painel de Controle (um programa de configuração/controle dedicado), pelo sistema de script do PowerShell ou pelos comandos net stop e net start, o elemento controlador de serviço do gerenciador de controle de serviço.

Qualquer aplicativo do Windows, entretanto, pode implementar as responsabilidades de um daemon não apenas como um serviço, e alguns daemons do Windows contêm a opção de execução como um processo normal.

macOS clássico e Mac OS

Vários serviços e recursos opcionais foram facilitados pelos arquivos carregados no momento da inicialização que reconstroem o sistema operacional no Mac OS clássico.

Eles foram chamados de painéis de controle e extensões de sistema. As versões posteriores do Mac OS padrão as ampliaram com aplicativos de fundo sem rosto totalmente desenvolvidos.

Esses aplicativos são aplicativos regulares executados em segundo plano. Eles ainda eram especificados como extensões regulares do sistema para o usuário.

macOS é um sistema Unix e usa daemons. O macOS aplica o termo do serviço para designar software que implementa funções escolhidas no menu de serviços, em vez de aplicar esse termo como o Windows faz para daemons.

Funções típicas de daemons

  • Execute ações agendadas como cron.
  • Monitore sistemas como matriz RAID ou integridade do disco rígido.
  • Responda à solicitação da rede e abra a porta de rede (como a porta 80).

Como iniciamos, reiniciamos ou paramos daemons para um prompt de shell?

Precisamos aplicar seus comandos de serviço como abaixo:

 service daemon-name-here start service daemon-name-here stop service daemon-name-here restart 

No exemplo a seguir, estrelas, reinicie e pare.

 service httpd start service httpd stop service httpd restart 

Como verificamos a lista de cada daemon em execução?

Para verificar o status de cada daemon instalado, digite:

 service - -status-all 

Planejando Nosso Daemon

O que o daemon vai fazer?

O daemon deve implementar uma coisa e implementá-la bem. Essa única coisa pode ser tão complicada quanto lidar com muitas caixas de correio em mais de um domínio ou tão fácil quanto ligar para o sendmail para enviá-lo a um administrador e especificar um relatório.

Devemos ter uma ideia melhor do que um daemon deve fazer em qualquer caso. Ele irá interagir com alguns outros daemons que podemos especificar ou não. É também outra coisa a examinar.

ordenação por seleção

Interação

Daemons nunca devem se comunicar com o usuário diretamente por um terminal. Cada comunicação passa por alguns tipos de interface (que podemos ou não precisar especificar), que podem ser tão complicados quanto GUI + GTK ou tão simples quanto um conjunto individual.

A estrutura básica do daemon

Daemon precisa implementar algumas tarefas domésticas de baixo nível para se preparar para o trabalho real quando for inicializado. Envolve algumas etapas que são as seguintes:

  • Bifurque um superprocesso (processo pai)
  • Modifique a máscara do modo de arquivo (umask)
  • Abra registros para gravar
  • Faça um ID de sessão especial (abreviado como SID)
  • Modifique o diretório de trabalho (atual) para um local seguro
  • Fechar descritores de classificação do arquivo
  • Digite o código do daemon original

Lista de serviços daemon para sistemas semelhantes a Unix e Linux

    anacrônico:Ele executa ações cron atrasadas no momento da inicialização.amd:Significa Auto Mount Daemon.etc:Executa trabalhos enfileirados aplicando o na ferramenta.apmd:Significa Daemon de gerenciamento avançado de energia.crond:É um daemon do agendador de tarefas.autofs:Ele ajuda o daemon automounter, permitindo a desmontagem e montagem de dispositivos sob demanda.dhcpd:Significa protocolo de configuração dinâmica de host. Além disso, é um servidor de protocolo Internet Bootstrap.xícara:Significa daemon de impressora CUPS.ftpd:Significa FTP Server Daemon.httpd:É um daemon de servidor web.fechado:Ele pode rotear os daemons que substituem egpup e roteados e gerenciar mais de um protocolo de roteamento.lpd:Significa Line Printer Daemon.imapd:É o daemon do servidor imap.inetd:Significa Internet Superserver Daemon.memchached:É um daemon de cache de objetos distribuídos na memória.mysql:É um daemon de servidor de banco de dados.montado:É um daemon de montagem.nfsd:Significa Daemon de Compartilhamento de Arquivos de Rede.nomeado:É um daemon de servidor DNS.nflock:É aplicado para iniciar e interromper os serviços de bloqueio de arquivos nfs.ntpd:Significa daemon de serviço Network Time Protocol.nmd:Significa Network Message Block Daemon.postgresql:É um daemon de servidor de banco de dados.pós-fixo:É um agente de transporte de correio e usado como substituto do Sendmail.rpcbind:Significa Remote Procedure Call Bind Daemon.roteado:Ele lida com tabelas de roteamento.smbd:É um Daemon do Samba.enviar correio:É um daemon de agente de transferência de correio.smtpd:Significa Daemon de protocolo de transferência de correio simples.lula:É um daemon de servidor proxy de cache de página da web.snmpd:Significa Daemon de protocolo de gerenciamento de rede simples.sincronizado:Ele pode manter vários sistemas de arquivos sincronizados junto com a memória do sistema.sshd:É um daemon de servidor Secure Shell.syslogd:Significa daemon de registro do sistema.Telnet:É um daemon de servidor Telnet.tcpd:Possui um wrapper de serviço que pode restringir a autorização para serviços baseados em inetd de hosts.deny e hosts.allow.vsftpd:Significa Daemon FTP Muito Seguro.webmin:É um daemon de servidor de administração baseado na web.xntd:É um daemon de servidor de horário de rede.xinetd:É um daemon de superservidor de Internet aprimorado.