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

好的网站具备什么条件最新源码

好的网站具备什么条件,最新源码,西安招标网,四平网络推广昨天学了进程控制#xff0c;就这三种特殊的进程研究了一下#xff0c;其中也借鉴了一些前人总计的经验。 1、孤儿进程 如果父进程先退出,子进程还没退出那么子进程将被 托孤给init进程,这里子进程的父进程就是init进程(1号进程).其实还是很好理解的。 // 父进程先子进程退…昨天学了进程控制就这三种特殊的进程研究了一下其中也借鉴了一些前人总计的经验。 1、孤儿进程 如果父进程先退出,子进程还没退出那么子进程将被 托孤给init进程,这里子进程的父进程就是init进程(1号进程).其实还是很好理解的。 // 父进程先子进程退出 // 子进程会被祖父进程接手并在后台运行执行内部的代码 int main() {pid_t pid fork();switch (pid){case -1:perror (fork);break;case 0: // 子进程close (1);// 创建一个文件用来保存输出的文字int fd open (child, O_RDWR|O_CREAT, 0777);printf (我是子进程我的ID是%d\n, getpid());while (1){printf (找爸爸\n);fflush (stdout);sleep (2);}break;default: // 父进程printf (我是父进程ID %d\n, getpid());printf (我走啦\n);while (1);break;}return 0; } 在这里我们运行了程序可以在另一终端看到有2个a.out在运行我们将父进程终止子进程并没有退出而是在后台继续运行并向child文件中输出文字。 2、僵尸进程 如果我们了解过Linux进程状态及转换关系,我们应该知道进程这么多状态中有一种状态是僵死状态,就是进程终止后进入僵死状态(zombie),等待告知父进程自己终止,后才能完全消失.但是如果一个进程已经终止了,但是其父进程还没有获取其状态,那么这个进程就称之为僵尸进程.僵尸进程还会消耗一定的系统资源,并且还保留一些概要信息供父进程查询子进程的状态可以提供父进程想要的信息.一旦父进程得到想要的信息,僵尸进程就会结束. // 子进程比父进程先退出 int main() {int count 5;while (count--){//signal(SIGCHLD,SIG_IGN);pid_t pid fork();switch (pid){case -1:perror (fork);break;case 0: // 子进程printf (我是子进程我的ID是%d\n, getpid());printf (我走啦\n);exit (0);default: // 父进程printf (我是父进程我的ID是%d\n, getpid());//while(1);break;}}while(1);return 0; }signal(SIGCHLD,SIG_IGN);加上这行代码后僵尸进程都消失了。 通过ps -ef | grep a.out 我们可以得知进程信息和进程pid,可以看到子进程就是处于defunct状态.这时我们肯定想要怎么才能避免僵尸进程呢?看程序被我注释的那句signal(SIGCHLD,SIG_IGN),加上就不会出现僵尸进程了.那我们就加点篇幅讲一下为什么就可以避免僵尸进程呢? 这是signal()函数的声明sighandler_t signal(int signum, sighandler_t handler),我们可以得出,signal函数的第一个函数是linux支持的信号,第二个参数是对信号的操作 ,是系统默认还是忽略或捕获.我们这是就可以知道signal(SIGCHLD,SIG_IGN)是选择对子程序终止信号选择忽略,这是僵尸进程就是交个内核自己处理,并不会产生僵尸进程. 3、守护进程 同样我们需要了解一下什么是守护进程,守护进程就是在后台运行,不与任何终端关联的进程,通常情况下守护进程在系统启动时就在运行,它们以root用户或者其他特殊用户(apache和postfix)运行,并能处理一些系统级的任务.习惯上守护进程的名字通常以d结尾(sshd),但这些不是必须的. 下面介绍一下创建守护进程的步骤 · 调用fork(),创建新进程,它会是将来的守护进程. · 在父进程中调用exit,保证子进程不是进程组长 · 调用setsid()创建新的会话区 · 将当前目录改成跟目录(如果把当前目录作为守护进程的目录,当前 目录不能被卸载他作为守护进程的工作目录) · 将标准输入,标注输出,标准错误重定向到/dev/null // 守护进程 int daemonize (int nochdir, int noclose) {// 创建子进程关闭父进程pid_t pid fork();if (pid 0) // 父进程{exit (0);}else if (pid 0){return -1;}// 2、设置文件的掩码mode ~umaskumask (0);// 3、设置新的会话:脱离当前会话和终端的控制if (setsid() 0){return -1;}// 当nochdir为0时daemon将更改进程的根目录为rootif (0 nochdir){// 改变当前的工作目录if (chdir (/) 0){return -1;}}// 标准输入、关闭标准输出、标准错误close (STDIN_FILENO);close (STDOUT_FILENO);close (STDERR_FILENO);if (0 noclose){// 重定向标准输入、关闭标准输出、标准错误open (dev/null, O_RDONLY); // 0open (dev/null, O_RDWR); // 1open (dev/null, O_RDWR); // 2}return 0; }int main() {daemonize (0, 0);// daemon (0,0); // 系统自带守护进程while (1);return 0; }
http://www.pierceye.com/news/192667/

相关文章:

  • 社科联网站建设个人网页英文
  • 做房产推广那个网站好网站改版建设原则
  • 网站建设 语言成都app
  • 免费建站的手机app专业做网站设计公司价格
  • 江苏宜兴做网站的电话seo基础培训
  • 企业手机端网站模板下载济南公司建站模板
  • 一般公司做网站多少钱南昌市房产网
  • 惠州网站小程序建设做公司永久免费网站什么好
  • 湖南涟钢建设有限公司网站局网站建设工作总结
  • 家乡ppt模板免费下载网站合肥百姓网网站建设
  • 免费整套ppt模板下载网站东莞建设教育网站
  • 漯河网站建设漯河ps制作个人网站首页
  • 电商网站公司软件开发和软件研发
  • 网站建设浙江公司网站开发运营新人要注意什么
  • 外贸网站模板哪里下载家里电脑可以做网站服务器吗
  • 长沙门户网站北京设计网站的公司
  • 站长统计平面设计找工作难吗
  • seo建站公司推荐电商平台活动策划方案
  • 建设淘宝客网站.lc和ev手机对比平台
  • vue 做企业网站特产网站开发背景
  • 奉新网站制作dede视频网站源码
  • 做动画网站去哪采集建设网站需要的资金清单
  • 网站后台发邮件注册公司需要什么证件和手续
  • 炫酷特效网站万网虚拟主机免费空间
  • 公司网站模板最新怀远网站建设哪家好
  • 交互式网站定义如何网上找加工订单
  • 一个域名可以做几个网站吗南城网站建设公司
  • 宝安商城网站建设flash新手入门简单动画制作
  • 设置网站建设WordPress adsen
  • 网站与微信内容建设与运维总结建筑网络图