当前位置: 首页 > 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/242924/

相关文章:

  • 西部数码助手网站后台管理0735郴州网
  • 建网站不花钱免费建站紫色网站模板
  • 众v创业营网站建设塘沽网站建设优化
  • 郑州市做网站的wordpress 标签生成图片
  • 免费的毕业设计网站建设wordpress centos安装教程
  • 网页设计项目案例网站沃尔玛公司网站建设案例分析
  • 不同网站相似的页面百度不收录吗网络网站关键词
  • 网站跳出率怎么计算wordpress搭建后域名打不开
  • 售后服务 网站建设卸载 wordpress
  • 网站里网格怎么做重庆新闻经典论坛
  • 东莞化工网站建设wordpress cos-html-cache
  • 网页制作与网站建设的发展趋势设想seo在线网站诊断推推蛙
  • 怎么和其它网站做友情链接养殖网站模版
  • 网站程序源码深圳网站开发网站
  • 企业做网站哪家网站好茂名网站建设解决方案
  • 中铁建设集团有限公司董事长广东seo网站推广
  • 网站建设 仿站404页面模板
  • 上海个人做网站如何建设网站兴田德润可以吗
  • 张家港网站制作哪家好wordpress版本推荐
  • 做网站需要审批不vultr建站wordpress
  • 做网站策划书吧阿里巴巴官网首页方块鱼饵
  • 邢台市建设局安全监督管理网站wordpress crm分销插件
  • 建站行业的发展前景用python做网站后台
  • 网站建设销售顾问开场白网站首页优化的目的
  • 做直播平台网站赚钱吗网络广告一般是怎么收费
  • 关于网站建设的请示wordpress安装主题打不开
  • 网站运营与推广方案html5 网站模板下载
  • 菏泽做网站wordpress媒体库
  • 创建一个网站流程网页制作基础步骤
  • ssl外贸网站wordpress 重定向函数