DDR爱好者之家 Design By 杰米
linux 守护进程详解及建立守护进程
守护进程是一种后台运行并且独立于所有终端控制之外的进程。
守护进程的启动
要启动一个守护进程,可以采取一下几种方式:
- 在系统期间通过系统的初始化脚本启动守护进程。这些脚本通常在目录etc/rc.d下,通过它们所启动的守护进程具有超级用户的权限。系统的一些基本服务通常都是通过这种方式启动的。
- 很多网络服务程序都是由inetd守护程序启动的。它监听各种网络请求,如telnet、ftp等,在请求到达时启动相应的服务器程序(telnet server,ftp server等)。
- 由cron定时启动的处理程序。这些程序在运行时实际上也是一种守护进程。
- 由at启动的处理程序。
- 守护程序也可以从终端启动,通常这种方式只用于守护进程的测试,或者是重启因某种原因而停止的进程。
- 在终端上用nohup启动的进程。用这种方法可以把所有的程序都变成守护进程。
守护进程的建立
先来看一个守护进程建立的例子:
#include <sys/types.h> #include <signal.h> #include <unistd.h> #include <syslog.h> #define MAXFD 64 void daemon_init(const char* pname, int facility){ int i; pit_t pid; /*fork(),终止父进程*/ if(pid=fork()){ exit(0); } /*第一子进程*/ setsid(); signal(SIGHUP,SIG_IGN); /*fork()终止第一子进程*/ if(pid=fork()) exit(0); /*第二子进程*/ daemon_proc = 1; /*将工作目录设定位“/”*/ chdir("/"); /*清除文件掩码*/ umask(0); for(i = 0; i<MAXFD; i++){ close(i); } /*打开log*/ openlog(pname, LOG_PID, facility); }
从上面的程序可以看出,建立一个守护进程需要以下操作:
- fork。首先需要fork一个子进程并将父进程关闭。如果进程是作为一个shell命令在命令行前台启动的,当父进程终止时,shell就认为该命令已经结束。这样子进程就自动成为了后台进程。而且,子进程从父进程那里继承了组标识符同时又拥有了自己的进程标识符,这样保证了子进程不会是一个进程组的首进程。这一点是下一步setsid所必需的。
- setsid。setsid()调用创建了一个新的进程组,调用进程成为该进程组的首进程。这样,就使该进程脱离原来的终端,成为了独立终端外的进程。
- 忽略SIGHUP信号,重新fork。这样使进程不再是进程组的首进程,可以防止在某些情况下进程意外的打开终端而重新与终端发生联系。
- 改变工作目录,清楚文件掩码。改变工作目录主要是为了切断进程与原有文件系统的联系。并且保证无论从什么地方启动进程都能正常工作。清除文件掩码是为了消除进程自身掩码对其创建文件的影响。
- 关闭全部已打开的文件句柄。这是为了防止子进程继承在父进程中打开的文件而使这些文件始终保持打开从而产生某些冲突。
- 打开log系统。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年12月28日
2024年12月28日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]