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

响应式网站新闻部分怎么做站长之家域名查询官网

响应式网站新闻部分怎么做,站长之家域名查询官网,网站推广运营公司,淄博网站建设公司推荐Linux C语言 23-守护进程 本节关键字#xff1a;守护进程、daemon 相关C库函数#xff1a;sigset、signal、fork、setsid、chdir、umask、open、write、close、sleep 什么是守护进程#xff1f; 守护进程#xff08;Daemon#xff09;也被翻译为精灵进程、后台进程守护进程、daemon 相关C库函数sigset、signal、fork、setsid、chdir、umask、open、write、close、sleep 什么是守护进程 守护进程Daemon也被翻译为精灵进程、后台进程守护进程的运行不受终端影响可以长期稳定地运行服务直到整个系统关闭才退出守护进程是后台运行的、系统启动是就存在的、不予任何终端关联的用于处理一些系统级别任务的特殊进程若是想让某个进程不受用户、中断或其它变化的影响那么必须把这个进程变成一个守护进程 Unix/Linux系统中守护进程的查看 ps -ef | grep ‘.*d$’ 可以看到许多以-d结尾的进程这些进程大多数都是守护进程ps -axj a表示列出所有用户的进程 x表示列出有终端和无终端的进程 j表示列出与作业控制相关的信息这些信息中凡是TPGID一栏为-1的基本上都是守护进程。 守护进程的编写 守护进程的惯例 在unix系统中守护进程的设计通常遵循以下原则 如果守护进程使用锁文件则该锁文件通常位于/var/run目录中。然而需要注意的是在该目录创建文件通常需要超级用户的权限锁文件的名字通常是name.pid例如cron守护进程锁文件的名字是/var/run/crond.pid如果守护进程支持配置选项那么该配置文件一般是放在/etc目录下文件名字一般是name.confname是该守护进程或服务的名字例如mysqld配置文件的名字是/etc/my.cnf守护进程可以使用命令启动但是该启动命令一般在系统初始化的脚本中进行。如果守护进程终止应当自动进行重启如果一个守护进程更新了配置文件则应该重新启动为了避免每次更改配置文件都需要重启进程的问题某些进程将捕捉SIGHUP信号接收到此信号时自动重新读取配置文件。 守护进程的编写步骤 1创建子进程父进程退出使子进程称为孤儿进程此时init进程会将孤儿进程收录 这是编写守护进程的第一步因为守护进程是脱离终端的所以完成第一步后就会在shell终端里形成一个程序已经运行完毕的假象。以后的全部工做在子进程中完成而用户在shell终端里则能够执行其余命令从而在形式上作到了与控制终端脱离。 2在子进程中建立新的会话脱离控制终端 在子进程中建立新的会话脱离控制终端这步是建立守护进程中最重要的一步虽然实现起来很简单可是它的意义很是重要在这里使用的是系统函数setsid()来建立一个新的会话而且担任该会话组的组长。 3更改当前工作目录 使用fork()建立的子进程是继承了父进程的当前工做目录因为在进程运行中当前目录所在的文件系统是不能卸载的这对之后使用会形成不少的麻烦。所以一般的作法是让“/”做为守护进程的当前目录固然也能够指定其余的别的目录来做为守护进程的工做目录。 4重设文件权限掩码 文件权限掩码是屏蔽掉文件权限中的对应位。因为使用fork()函数新建立的子进程继承了父进程的文件权限掩码这就给该子进程使用文件带了不少的麻烦好比父进程中的文件没有执行文件的权限然而在子进程中但愿执行相应的文件这个时候就会出问题。所以在子进程中要把文件的权限掩码设置成为0即此时有最大的权限这样能够大大加强该守护进程的灵活性。设置的方法是umask(0)。 5关闭文件描述符 同文件权限码同样用fork()函数新建的子进程会从父进程那里继承一些已经打开了的文件。这些文件被打开的文件可能永远不会被守护进程读写若是不进行关闭的话将会浪费系统的资源形成进程所在的文件系统没法卸下以及引发预料的错误。 6守护进程的退出如果程序内部不做任何处理则需要使用kill命令来终止守护进程因此建议在守护进程中使用signal信号处理来实现进程的正常退出。 补充说明 进程组process group一个或多个进程的集合每个进程组有惟一一个进程组ID即进程组长进程的ID。会话期session一个或多个进程组的集合有惟一一个会话期首进程session leader。会话期ID为首进程的ID。会话期能够有一个单独的控制终端controlling terminal。与控制终端链接的会话期首进程叫作控制进程controlling process。当前与终端交互的进程称为前台进程组。其他进程组称为后台进程组。挂断信号SIGHUP默认的动做是终止程序。当终端接口检测到网络链接断开将挂断信号发送给控制进程会话期首进程。若是会话期首进程终止则该信号发送到该会话期前台进程组。一个进程退出致使一个孤儿进程组中产生时若是任意一个孤儿进程组进程处于STOP状态发送SIGHUP和SIGCONT信号到该进程组中全部进程。所以当网络断开或终端窗口关闭后控制进程收到SIGHUP信号退出会致使该会话期内其余进程退出。 #include stdio.h #include unistd.h #include stdlib.h #include string.h #include fcntl.h #include signal.h #include sys/ioctl.h#define MAXFILE 65535int main(void) {pid_t pid;int i, fd, len;char *buf this is my dameon\n;len strlen(buf);#ifdef SIGTTOU // 可选sigset(SIGTTOU, SIG_IGN); // 忽略写终端信号sigset(SIGTTIN, SIG_IGN); // 忽略读终端信号sigset(SIGTSTP, SIG_IGN); // 忽略CtrlZ信号 #endif// 1、创建子进程 并结束父进程pid fork(); if (pid 0){printf(error fork \n);exit(1);}else if (pid 0){exit(0); // 结束父进程}// 2、在子进程中建立新的会话 // 调用setsid函数的进程成为新会话的领头进程并脱离其父进程的会话组和进程组// 由于会话对控制终端的独占性子进程同时与控制终端脱离setsid();if ((fdopen(/dev/tty, O_RDWR)) 0){// 解除进程与当前控制台的联系ioctl(fd, TIOCNOTTY, (char*)NULL);close(fd);}if (fork() 0){// fork第二次主要目的是。防止进程再次打开一个控制终端// 可以省略此步因为打开一个控制终端的前台条件是该进程必须是会话组长。再fork一次子进程ID ! sidsid是进程父进程的sid。因此也没法打开新的控制终端exit(0);}// 3、更改当前的工作目录 摆脱父进程的影响chdir(/);// 4、重新文件权限掩码umask(0);// 5、关闭文件描述符有些操作系统可不关闭for (i0; iMAXFILE; i){// 关闭文件描述符(常说的输入输出报错3个文件)// 由于守护进程要失去了对所属的控制终端的联系这三个文件要关闭close(i);}while (1){// 测试程序每10秒向指定文件中写入一次内容if ((fdopen(/tmp/mydameontest.txt, O_CREAT|O_WRONLY|O_APPEND, 0600)) 0){printf(open file err \n);exit(0);}write(fd, buf, len1);close(fd);sleep(10);} } /** 运行结果 运行程序后执行命令 tail -f /tmp/mydaemontest.txt # tail -f mydaemontest.txt this is my daemon this is my daemon this is my daemon this is my daemon*/
http://wiki.neutronadmin.com/news/359077/

相关文章:

  • 建设网站开发wap网站 区别
  • 网站建设企业战略百度seo优化分析
  • 郑州建设网站建站专业做图片制作网站
  • 杭州住房和城乡建设局网站帮做暑假作业网站
  • 子域名做微信开放平台网站应用wordpress插件 网站跳转
  • 网站到首页排名昆明城乡建设网站
  • 网站建设与推广实训报告册有哪些做外贸的网站
  • 民宿设计网站大全贵州省领导班子名单一览表
  • 网站开发的工作职责小程序代理加盟前景
  • 建网站要多少钱一个月免费手机h5模板网站模板下载
  • 国通快速建站深圳seo优化公司唯八seo
  • 东莞网站建设方案托管网站建设设计流程
  • 门户网站目标客户公司网站制作公司倒闭
  • 合肥 做网站的公司晋城网站制作公司怎么选
  • 儋州网站设计公司二手车网站怎么做
  • 怎样做代刷网站WordPress博客手机主题
  • 我的世界做视频封面的网站中国人在线观看免费高清
  • 南京网站制作建设php搭建wordpress
  • 自助设计网站具有价值的网站制作
  • 网站建设书店目标客户分析网站建设的功能和定位
  • 神鹰网站建设公司公司网页设计需要跟设计公司洽谈的问题
  • 深圳网站建设龙华信科企业推广方式优选隐迅推
  • 厦门网站建设阿里外贸品牌网站制作
  • 用python做网站开发的课程设计一款app
  • 建一个个人网站多少钱icp备案域名购买
  • 制作网站必做步骤app开发制作在哪里的
  • 自己做资金盘网站速升网网站是多少钱
  • 网站找图片做海报侵权培训机构哪家最好
  • 做网站的励志故事海洋观测新闻资讯
  • 湖南手机网站制作公司云虚拟主机怎么做网站