C语言socket编程–每日签到

  前几天写了个python的每日签到,你运行还得借助crontab,,很是不爽…..正好前几天看了个关于c编写daemon进程,加上自己那点可怜的socket知识,于是我们重操旧页,C语言版的每日签到。就是要签到~~~

  关于daemon程序,也叫守护进程,一般运行在后台,我喜欢悄悄的运行。。。。哈哈哈,这个init_daemon.c被大家在网上转来转去,原则都是一样的

Daemon程序设计主要原则包括:

(1)程序运行后调用fork,并让父进程退出。子进程获得一个新的进程ID,但继承了父进程的进程组ID。

(2)调用setsid创建一个新的session,使自己成为新session和新进程组的leader,并使进程没有控制终端(tty)。

(3)设置文件创建mask为0,避免创建文件时权限的影响。

(4)关闭不需要的打开文件描述符。因为Daemon程序在后台执行,不需要于终端交互,通常就关闭STDIN、STDOUT和STDERR。其它根据实际情况处理。

(5)Daemon无法输出信息,可以使用SYSLOG或自己的日志系统进行日志处理。(可选)

(6)编写管理Daemon的SHELL脚本,使用service对Daemon进行管理和监控。(可选)

  

#include <unistd.h>#include <signal.h>#include <sys/param.h>#include <sys/stat.h>void init_daemon(void){int pid;int i;if(pid=fork())exit((pid< 0)exit(1);//fork失败,退出//是第一子进程,后台继续执行setsid();//第一子进程成为新的会话组长和进程组长(pid=fork())exit((pid< 0)exit(1);//fork失败,退出//是第二子进程,继续(i=0;i< NOFILE;++i)//关闭打开的文件描述符 close(i);chdir();//改变工作目录到/tmpumask(;}见过旅行风景,就这样,慢慢学会了长大。

C语言socket编程–每日签到

相关文章:

你感兴趣的文章:

标签云: