全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

linux 守护进程详解及建立守护进程

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);
}

  从上面的程序可以看出,建立一个守护进程需要以下操作:

  1. fork。首先需要fork一个子进程并将父进程关闭。如果进程是作为一个shell命令在命令行前台启动的,当父进程终止时,shell就认为该命令已经结束。这样子进程就自动成为了后台进程。而且,子进程从父进程那里继承了组标识符同时又拥有了自己的进程标识符,这样保证了子进程不会是一个进程组的首进程。这一点是下一步setsid所必需的。
  2. setsid。setsid()调用创建了一个新的进程组,调用进程成为该进程组的首进程。这样,就使该进程脱离原来的终端,成为了独立终端外的进程。
  3. 忽略SIGHUP信号,重新fork。这样使进程不再是进程组的首进程,可以防止在某些情况下进程意外的打开终端而重新与终端发生联系。
  4. 改变工作目录,清楚文件掩码。改变工作目录主要是为了切断进程与原有文件系统的联系。并且保证无论从什么地方启动进程都能正常工作。清除文件掩码是为了消除进程自身掩码对其创建文件的影响。
  5. 关闭全部已打开的文件句柄。这是为了防止子进程继承在父进程中打开的文件而使这些文件始终保持打开从而产生某些冲突。
  6. 打开log系统。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# linux  # 守护进程 


相关文章: 如何快速登录WAP自助建站平台?  广州营销型建站服务商推荐:技术优势与SEO优化解析  如何用花生壳三步快速搭建专属网站?  盘锦网站制作公司,盘锦大洼有多少5G网站?  建站之星北京办公室:智能建站系统与小程序生成方案解析  简历在线制作网站免费版,如何创建个人简历?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  建站之星导航如何优化提升用户体验?  建站主机选哪种环境更利于SEO优化?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  建站之星如何实现PC+手机+微信网站五合一建站?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南    网站制作多少钱一个,建一个论坛网站大约需要多少钱?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  建站VPS配置与SEO优化指南:关键词排名提升策略  建站主机无法访问?如何排查域名与服务器问题  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  如何将凡科建站内容保存为本地文件?  魔方云NAT建站如何实现端口转发?  太原网站制作公司有哪些,网约车营运证查询官网?  网站设计制作企业有哪些,抖音官网主页怎么设置?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何在万网开始建站?分步指南解析  建站主机类型有哪些?如何正确选型  微课制作网站有哪些,微课网怎么进?  如何用wdcp快速搭建高效网站?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  如何选择CMS系统实现快速建站与SEO优化?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何在Golang中使用replace替换模块_指定本地或远程路径  如何快速搭建高效WAP手机网站?  如何在建站主机中优化服务器配置?  建站主机选虚拟主机还是云服务器更好?  建站之星安装模板失败:服务器环境不兼容?  如何在Tomcat中配置并部署网站项目?  建站之星2.7模板快速切换与批量管理功能操作指南  如何高效利用200m空间完成建站?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  岳西云建站教程与模板下载_一站式快速建站系统操作指南  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  在线制作视频的网站有哪些,电脑如何制作视频短片?  宁波免费建站如何选择可靠模板与平台?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。