C: Escrevendo um daemon

Post curtinho só para mostrar como fazer um programa “soltar” o shell, indo para o background. Ou seja, como fazer um daqueles famosos daemons. A mágica mesmo acontece com o fork(), mas existe uma função determinada pelo padrão POSIX e presente no header unistd.h que torna o processo mais fácil.

Este é um exemplo bobinho que vai para o background e escreve os números de 0 a 10 em um arquivo de texto, /tmp/daemon-test.

#include
#include
#include

int main(int argc, char *argv[])
{
int i = 0;
FILE *fptr = fopen(“/tmp/daemon-test”,”w”);

daemon(0, 0);

for(;i<11;i++) { fprintf(fptr,"%d\n",i); sleep(10); } fclose(fptr); return(0); } [/sourcecode] O primeiro argumento da função daemon() define o diretório ativo para aquele programa. Ou seja, 0 se o diretório ativo for o / ou qualquer valor não nulo se for o diretório em que o processo foi iniciado.

Já o segundo determina o que será feito com a stdout, stdin e stderr. Valores nulos significam que elas serão redirecionadas para /dev/null, e valores não nulos que elas não serão redirecionadas.

Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: