如何写一个Daemon?!
时间:2006-04-09 来源:Alan_Shu
C实现方法如下:
########TestDaemon.c######## #include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h> void DaemonInit()
{
pid_t pid;
if ((pid = fork()) != 0)
exit(0); setsid();
signal(SIGINT, SIG_IGN);
signal(SIGHUP, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGPIPE, SIG_IGN);
signal(SIGTTOU, SIG_IGN);
signal(SIGTTIN, SIG_IGN);
signal(SIGCHLD, SIG_IGN);
signal(SIGTERM, SIG_IGN); if ((pid = fork()) !=0)
exit(0); chdir("/");
umask(0);
} void main(int argc,char *argv[])
{
DaemonInit(); while(1)
{
printf("Daemon Start.....\n");
sleep(100);
}
}
expect脚本实现方法如下: !/usr/bin/expect if [fork]!=0 exit
disconnect while {1} {
puts stderr "I'am Daemon"
sleep 30
}
########TestDaemon.c######## #include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h> void DaemonInit()
{
pid_t pid;
if ((pid = fork()) != 0)
exit(0); setsid();
signal(SIGINT, SIG_IGN);
signal(SIGHUP, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGPIPE, SIG_IGN);
signal(SIGTTOU, SIG_IGN);
signal(SIGTTIN, SIG_IGN);
signal(SIGCHLD, SIG_IGN);
signal(SIGTERM, SIG_IGN); if ((pid = fork()) !=0)
exit(0); chdir("/");
umask(0);
} void main(int argc,char *argv[])
{
DaemonInit(); while(1)
{
printf("Daemon Start.....\n");
sleep(100);
}
}
expect脚本实现方法如下: !/usr/bin/expect if [fork]!=0 exit
disconnect while {1} {
puts stderr "I'am Daemon"
sleep 30
}
相关阅读 更多 +