守护进程
来源:互联网 发布:水镜先生知乎 编辑:程序博客网 时间:2024/05/07 04:30
1.什么是守护进程
守护进程,也就是通常说的Daemon(精灵)进程,
2.2 独立于控制终端
守护进程不能占用控制终端,因此需要在后台运行。实现方法是调用setsid()函数。
2.3.1 修改工作目录
进程活动时,其工作目录所在的文件系统不能卸载。例如:我们是从/mnt/usb目录下启动该守护进程的,那么如果守护进程的工作目录就是/mnt/usb,我们就无法在守护进程
守护进程,也就是通常说的Daemon(精灵)进程,
是Linux中的一种服务进程。它的特点是:
不占用控制终端(后台运行)
独立于控制终端
周期性运行
例如:smbd
2.1 后台运行
守护进程需要独立于任何一个控制终端。实现方法调用是通
2.1 后台运行
守护进程需要独立于任何一个控制终端。实现方法调用是通
过创建子进程来充当守护进程,而父进程退出,这样子进程
就可以在后台运行。(范例展示)
- pid=fork();
- if(pid>0)
- exit(0); //父进程退出
- else (pid==0)
- {
- //守护进程
- }
2.2 独立于控制终端
守护进程不能占用控制终端,因此需要在后台运行。实现方法是调用setsid()函数。
- pid=fork();
- if(pid>0)
- exit(0); //父进程退出
- else (pid==0) //守护进程
- {
- setsid();
- 。。。。。。
- }
2.3.1 修改工作目录
进程活动时,其工作目录所在的文件系统不能卸载。例如:我们是从/mnt/usb目录下启动该守护进程的,那么如果守护进程的工作目录就是/mnt/usb,我们就无法在守护进程
还在运行的情况下umount /mnt/usb。所以一般需要将守护的工作目录切换到根目录。
chdir("/");
2.3.2 修改文件权限掩码
文件权限掩码是指屏蔽掉文件权限中的对应位。比如掩码是00,它就屏蔽了文件创建者的可读与可执行权限。由于子进程要继承父进程的文件权限掩码,这势必影响子进程中新
2.3.2 修改文件权限掩码
文件权限掩码是指屏蔽掉文件权限中的对应位。比如掩码是00,它就屏蔽了文件创建者的可读与可执行权限。由于子进程要继承父进程的文件权限掩码,这势必影响子进程中新
创建的文件的访问权限,为避免该影响,就需要重新对子进程中的权限掩码清零。通常的使用方法为函数:
mask(0);
2.3.3 关闭打开文件
2.3.3 关闭打开文件
同文件权限码一样,子进程还会从父进程那里继承一些已经打开了的文件。这些被打开的文件可能永远不会被守护进程读写,但它们一样消耗系统资源,而且会导致文件所在的文
件系统无法卸载。因此在子进程中需要将这些文件关闭。
for(i=0;i<MAXFILE;i++)
close(i);
- #include <stdio.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- void main()
- {
- pid_t pid;
- int i;
- int fd;
- int flag = 1;
- char *buf = "i am a daemon.";
- /*创建子进程*/
- pid = fork();
- if(pid < 0)
- {
- printf("fork error!\n");
- exit(1);
- }
- if(pid > 0)
- {
- exit(0);
- }
- /*脱离控制终端*/
- setsid();
- /*改变工作目录*/
- chdir("/");
- /*清除掩码*/
- umask(0);
- /*关闭打开的文件*/
- for(i=0;i<65535;i++)
- close(i);
- /*守护进程的实际工作*/
- while(1)
- {
- if((flag == 1) && (fd = open("/tmp/daemon.log", O_CREAT|O_WRONLY|O_APPEND, 0600) < 0))
- {
- printf("open file error!\n");
- flag = 0;
- exit(1);
- }
-
- write(fd, buf, strlen(buf));
- close(fd);
- sleep(1);
- }
- }
0
上一篇:网络并发服务器设计
下一篇:u-boot新手入门
相关热门文章
- test123
- 编写安全代码——小心有符号数...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- 彻底搞定C语言指针详解-完整版...
给主人留下些什么吧!~~
评论热议
阅读全文
0 0
- 守护进程守护自身
- 守护线程、守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 进程守护
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- 守护进程
- Linux网络编程协议
- TCP/UDP socket编程学习
- vim多行增加缩进
- yii2 邮件发送教程
- 网络并发服务器设计
- 守护进程
- Spring MVC 处理请求流程
- Python build finished, but the necessary bits to build these modules were
- u-boot新手入门
- Linux内核制作
- 三种memcached的JAVA客户端比较
- java注解解析
- BZOJ 4337 树的同构(树的hash)
- Alpha测试、Beta测试和验收测试的含义与区别
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
苏联元首
凡百元首
我是元首我怕谁
回到民国当元首
我元首我怕谁
我星河帝国元首
星河帝国元首
我是元首我怕谁卡夜阁
漫威之机械元首
元首的愤怒原版
帝国的毁灭元首演员
马来西亚元首辞职
谁是元首的真爱
魔法元首李维
暗黑元首技能加点
元首的愤怒甩葱歌
元首的愤怒苍天哥
娱乐之超级老爸帝国元首
女孩为何穿短裙元首
元魁
玄元剑仙神魂出窍术
玄元剑仙神魂悟道有必要吗
元魏
元鼎
夏元鼎绝句
元鼎科技
元鼎 醉浓
元鼎仙尊
轩辕传奇归元鼎合成表
元鼎txt全集下载
元鼎全文阅读
阴阳仙尊
元龟
兄妹娇宠
兄妹
兄妹h
表兄妹
兄妹文
客厅兄妹当着父母
兄妹婴儿开始h
兄妹盖着毯子在父母面前h