Exemplo de daemon em C

Publicado por Andre Luiz da Silva 14/05/2004

[ Hits: 11.268 ]

Homepage: http://localhost

Download daemon.c




Galera, esse src eh muito interessante para quem está aprendendo sobre processos em ambiente Unix. Estudando um pouquinho esse codigo, o conceito de daemon fica muito mais claro do que a simples explicação de que um daemon eh um processo sendo executado em background e talz....

Obs: Eu não escrevi o codigo. ;-)

  



Esconder código-fonte

/*
   Demonio tipo UNIX, codigo de ejemplo.
   UNIX Daemon, example code rules.
   By:
   Por:
      Oscar Medina Duarte
      is111936@mail.udlap.mx
   
*/

#include <sys/types.h>
#include <sys/stat.h>
#include <signal.h>
#include <fcntl.h>

void damncode();
void teschingando(int);
void setduplicate(int);

main(){
pid_t pid;

signal(SIGINT,teschingando);
signal(SIGUSR1, setduplicate);

pid = fork();

if (pid <0){
   printf("Forking Error : )\n");
   exit(-1);
}else if (pid !=0 ){
   printf("\nThis is a Father 1\n");
}else{
   pid = fork();

   if (pid <0){
      printf("Forking error : )\n");
      exit(-1);
   }else if (pid !=0 ){
      printf("\nThis is a father 2\n");
      }else{
   
      /* Poner en modo daemon */
      /* Set Daemon mode */
      setsid();
      umask(0);
      chdir("/");
      damncode(); /* Y ejecutar el daemon, run the daemon */
   
   }
}

}

void damncode(){

   printf("Daemon :\n PID %d\tPPID %d\n",getpid(),getppid());
   for(;;);
}

void teschingando(int signo){

   printf("Signal : %d",signo);
   exit(1);
}

void setduplicate(int signo){
   main();
}

Scripts recomendados

Cliente em C via UDP

Alucard - scan de redes defensivo

Robo HTTP usando socket e código multiplataforma

Subdomain Finder

Descritor de protocolo


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts