C语言编写linux下的守护进程
利用
下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。
在main函数中执行
init_daemon();//初始化为Daemon
就可以把进程变成守护进程
#include
#include
#include
#include
#include
void
init_daemon(void
)
{
int
pid;
int
i;
if
(pid=fork())
exit
(0);//是父进程,结束父进程
else
if
(pid< 0)
exit
(1);//fork失败,退出
//是第一子进程,后台继续执行
setsid();//第一子进程成为新的会话组长和进程组长
//并与控制终端分离
if
(pid=fork())
exit
(0);//是第一子进程,结束第一子进程
else
if
(pid< 0)
exit
(1);//fork失败,退出
//是第二子进程,继续
//第二子进程不再是会话组长
for
(i=0;i< NOFILE;++i)//关闭打开的文件描述符
close
(i);
chdir("/tmp"
);//改变
工作目录到/tmp
umask(0);//重设文件创建掩模
return
;
}
相关文档:
在linux下一直被无法一下删除很多文件(超过1024)的问题困扰;今天找了一下,发现有一个很简单的解决办法。在terminal中输入
flora03:/scratch/weibinli> find . -name 'Rubidium*' | xargs rm
该命令一下子 将所有以Rubidium开头的文件删除掉。以此类推,应该可以将rm改为cp一次copy大数目的文件。
......
2.1 可测性问题详解(2)
接下来我们讨论重点问题:覆盖输入。一个函数,输入会有哪些呢?输入包括两方面:外部输入,内部输入。外部输入容易理解,就是函数外部可以设定的输入,包括参数,全局变量,成员变量。
&nb ......
1.引言
C++语言的创建初衷是“a better
C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程
式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++ ......
linux在2.6版本以后将配置文件由原来的config.in改为kconfig,对于kconfig的语法在/Documentation/kbuild/kconfig-language.txt中做了详细的说明,在这里给出kconfig-language.txt的中文版。
介绍
----
在配置数据库的配置选项是以树的形式组织的:
+- Code maturity level options
| +- ......