当前位置: 首页 > news >正文

无锡seo网站管理重庆建设安全员信息网站

无锡seo网站管理,重庆建设安全员信息网站,电子商城平台,做企业网站的前景1、守护进程#xff0c;也就是通常说的Daemon进程#xff0c;是Linux中的后台服务进程。它是一个生存期较长的进程#xff0c;通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。如果想让某个进程不因为用户或终端或其他地变化而受到影响#xff0c;那…1、守护进程也就是通常说的Daemon进程是Linux中的后台服务进程。它是一个生存期较长的进程通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。如果想让某个进程不因为用户或终端或其他地变化而受到影响那么就必须把这个进程变成一个守护进程。 2、创建守护进程步骤 1创建子进程父进程退出 之后的所有工作都在子进程中完成而用户在Shell终端里则可以执行其他命令从而在形式上做到了与控制终端的脱离。 在Linux中父进程先于子进程退出会造成子进程成为孤儿进程而每当系统发现一个孤儿进程时就会自动由1号进程init收养它这样原先的子进程就会变成init进程的子进程。 2在子进程中创建新会话 进程组是一个或多个进程的集合。进程组有进程组ID来唯一标识。除了进程号PID之外进程组ID也是一个进程的必备属性。每个进程组都有一个组长进程其组长进程的进程号等于进程组ID。且该进程组ID不会因组长进程的退出而受到影响。 会话周期会话期是一个或多个进程组的集合。通常一个会话开始于用户登录终止于用户退出在此期间该用户运行的所有进程都属于这个会话期。 1pid_t setsid(void); setsid() creates a new session if the calling process is not a process group leader. The calling process will be the only process in this new process group and in this new session. setsid函数用于创建一个新的会话并担任该会话组的组长。调用setsid有下面的3个作用 ① 让进程摆脱原会话的控制 ② 让进程摆脱原进程组的控制 ③ 让进程摆脱原控制终端的控制 有以下三个结果 a)成为新会话的首进程 b成为一个新进程组的组长进程 c没有控制终端。 有些人建议在此时再次调用fork并使父进程终止。第二个子进程作为守护进程继续运行。这样就保证了该守护进程不是会话首进程。 setsid函数能够使进程完全独立出来从而摆脱其他进程的控制。 setsid()调用成功后进程成为新的会话组长和新的进程组长并与原来的登录会话和进程组脱离。由于会话过程对控制终端的独占性进程同时与控制终端脱离。 子进程可以自己组成一个新的进程组,即调用setpgrp()与原进程组脱离关系,产生一个新的进程组,进程组号与它的进程号相同.这样,父进程退出运行后就不会影响子进程的当前运行. 3改变当前目录为根目录 使用fork创建的子进程继承了父进程的当前工作目录进程活动时其工作目录所在的文件系统不能卸下。通常的做法是让/作为守护进程的当前工作目录也可以是其他目录如/tmp使用chdir。 4重设文件权限掩码 文件权限掩码是指屏蔽掉文件权限中的对应位。比如有个文件权限掩码是050它就屏蔽了文件组拥有者的可读与可执行权限。mask mask ~050 通常把文件权限掩码设置为0umask(0)。 5关闭文件描述符 用fork函数新建的子进程会从父进程那里继承已经打开了的文件描述符。这些被打开的文件可能永远不会被守护进程读写但它们一样消耗系统资源而且可能导致所在的文件系统无法卸下。 在上面的第二步之后守护进程已经与所属的控制终端失去了联系。因此从终端输入的字符不可能达到守护进程守护进程中用常规方法如printf输出的字符也不可能在终端上显示出来。所以文件描述符为0、1和2 的3个文件常说的输入、输出和报错已经失去了存在的价值也应被关闭。 for(i0;iMAXFILE;i) close(i); 6守护进程退出处理 当用户需要外部停止守护进程运行时往往会使用 kill命令停止该守护进程。所以守护进程中需要编码来实现kill发出的signal信号处理达到进程的正常退出。 signal(SIGTERM, sigterm_handler); void sigterm_handler(int arg) { _running 0; } 7处理SIGCHLD信号 处理SIGCHLD信号并不是必须的。但对于某些进程特别是服务器进程往往在请求到来时生成子进程处理请求。如果父进程不等待子进程结束子进程将成为僵尸进程zombie从而占用系统资源。如果父进程等待子进程结束将增加父进程的负担影响服务器进程的并发性能。在Linux下可以简单地将 SIGCHLD信号的操作设为SIG_IGN。 signal(SIGCHLD,SIG_IGN); 这样内核在子进程结束时不会产生僵尸进程。
http://www.pierceye.com/news/862/

相关文章:

  • 东坑网站建设公司少儿编程课是学什么的
  • 购物网站开发过程wordpress怎么给分类标签写标题
  • 鼎湖网站建设青岛装修设计公司排名
  • 做网站知名公司八种营销模式
  • 如何把html网站改为asp网站关于网站建设费用的报告
  • 如何制作wordpress网站地图云主机和云服务器有什么区别
  • 网上做代销上哪个网站做竞品分析的网站
  • 平台类网站费用做网站一个月能挣多少钱
  • 学校网站设计制作目的如何推广英文网站
  • 深圳网站网页制作公司河南建设工程信息网官网首页
  • 免费个人网站 上传网站域名怎么做
  • 网站内容维护做外贸网站基本流程
  • 贸易网站建设公司大连 网站
  • 河北恒山建设集团网站建设专业网站公司
  • 互联网网站建设方案小手工制作简单又漂亮
  • 网站制作在线版中国科技成就新闻
  • 淘宝网站怎么做视频教程设计门户网站
  • 网站的形式有哪些深圳华强北现在能去吗
  • 从化市网站建设c网站开发案例详解代码
  • 网站建设的指标网站开发fsdpjq
  • 个人网站的优点陕西秦地建设有限公司网站
  • 手机网站制作步骤做网站是干嘛的
  • 男的女的做那个视频网站网页设计与制作教程html
  • 如何建站网站h5免费制作平台易企秀
  • 商丘集团网站建设浏阳企业网站建设
  • 京东商城网站特色如何申请自己的域名
  • 网站系统管理计划制作app界面
  • 锦州网站推广站长工具seo综合查询官网
  • 网站优化排名易下拉霸屏东营市做网站的公司
  • 北海住房和城乡建设局官方网站it外包人员有多惨