Processo órfão de programação do ambiente Linux, processo zumbi, processo daemon

Introduzimos o controle de processo anterior um após o outro. Hoje vamos apresentar processos órfãos, processos zumbis e processos daemon.

Então, quais são eles? ? Vamos fazer um vídeo para entender quem é o blogueiro.

1. Processo órfão

Se o processo pai termina antes do processo filho, o processo filho se torna um processo órfão. Os recursos do processo pai são recuperados pelo processo init. O processo filho que não foi concluído é adotado pelo processo init. O processo init pode ser considerado o reitor do orfanato.

2. Processo de zumbi:

O processo pai ainda está em execução, e o processo filho terminou [É senso comum que quando o processo terminar, os recursos que ele abriu serão liberados. Nesse momento, quero lembrar a todos que nem todos os recursos serão liberados. O PCB (processo Bloco de controle) não será liberado. Embora o PCB ocupe cerca de dez bytes, muitos recursos serão desperdiçados se houver mais processos zumbis ], Nota: kill -9 não recuperará o PCB restante no kernel, ele apenas Um comando para encerrar o processo, o processo zumbi foi encerrado, ou seja, o PCB no kernel não foi reciclado.

Pensando:

1. Por que não há desperdício de PCB no processo órfão sem o fim do processo pai?

Como o processo pai pode ser considerado como uma raiz da árvore, essa raiz da árvore é gerenciada pelo processo init e o sistema operacional recuperará automaticamente o PCB restante no kernel após o término do processo.

 

2. Como recuperar recursos de PCB deixados pelo processo zumbi no kernel? [ A implementação do código é fornecida nos capítulos seguintes, apenas uma introdução aqui ]

Método 1: Você pode eliminar o processo pai para tornar o processo filho um órfão e deixar o processo init recuperar o PCB do processo filho

Método 2: Você pode modificar o processo pai do processo para que o processo filho seja gerenciado diretamente pelo processo init

Método 3: você pode usar a função fornecida por glibc [wait, waitpid (função de retorno de chamada acionada por sinal (e processamento de armadilha de sinal))] para recuperar o PCB deixado no kernel pelo processo filho (comumente usado)

 

Três. [ Chave ] Daemon [A implementação do código do daemon é fornecida posteriormente]

O processo Daemon é um processo de serviço em segundo plano no Linux, que geralmente é independente do terminal e executa periodicamente certas operações ou espera a ocorrência de certos eventos. Geralmente, nomes que terminam em d são usados.

Alguns processos de serviço do sistema no fundo do Linux não têm terminal de controle e não podem interagir diretamente com os usuários. Eles não são afetados pelo login e logout do usuário. Eles estão sempre em execução. Eles são todos processos daemon. Tais como: a realização da entrada de pré-leitura e mecanismo de saída lenta; servidor ftp; servidor nfs, etc.

 

Mais uma coisa: você pode adicionar o daemon ./daemon por meio de .bashrc, para que o daemon possa ser iniciado automaticamente após a inicialização./daemon

 

 

 

 

 

 

 

 

Acho que você gosta

Origin blog.csdn.net/qq_44065088/article/details/108660219
Recomendado
Clasificación