注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谷搜互联网应用www.iguso.com

谷搜专注企业邮箱十二年

 
 
 

日志

 
 

子程序与父程序  

2014-08-11 14:22:40|  分类: Linux技术文章 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

子程序与父程序:

  在上面的说明里面,我们有提到所谓的『衍生出来的程序』,那是个啥咚咚?这样说好了,当我们登入系统后,会取得一个 bash 的 shell ,然后,我们用这个 bash 提供的介面去执行另一个指令,美国空间例如 /usr/bin/passwd 或者是 touch 等等,那些另外执行的指令也会被触发成为 PID ,呵呵!那个后来执行指令才产生的 PID 就是『子程序』了,而在我们原本的 bash 环境下,就称为『父程序』了!借用我们在 十一章 Bash 谈到的 export 所用的图示好了:


  图 1.1.3、程序相关系之示意图

  所以你必须要知道,程式彼此之间是有相关性的!以上面的图示来看,连续执行两个 bash 后,第二个 bash 的父程序就是前一个 bash。因为每个程序都有一个 PID ,谷搜外贸企业邮箱那某个程序的父程序该如何判断?就透过 Parent PID (PPID) 来判断即可。此外,由十一章的 export 内容我们也探讨过环境变数的继承问题,子程序可以取得父程序的环境变数啦! 让我们来进行底下的练习,以了解什么是子程序/父程序。

  例题:

  请在目前的 bash 环境下,再触发一次 bash ,并以『 ps -l 』这个指令观察程序相关的输出资讯。

  答:

  直接执行 bash ,会进入到子程序的环境中,然后输入 ps -l 后,出现:

  F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

  4 S 0 8074 8072 2 76 0 - 1287 wait pts/1 00:00:00 bash

  0 S 0 8102 8074 4 76 0 - 1287 wait pts/1 00:00:00 bash

  4 R 0 8118 8102 0 78 0 - 1101 - pts/1 00:00:00 ps

  有看到那个 PID 与 PPID 吗?第一个 bash 的 PID 与第二个 bash 的 PPID 都是 8074 啊, 因为第二个 bash 是来自于第一个所产生的嘛!另外,每部主机的程式启动状态都不一样, 谷搜企业邮箱所以在你的系统上面看到的 PID 与我这里的显示一定不同!那是正常的!详细的 ps 指令我们会在本章稍后介绍, 这里你只要知道 ps -l 可以查阅到相关的程序资讯即可。

  很多朋友常常会发现:『咦!明明我将有问题的程序关闭了,怎么过一阵子他又自动的产生? 而且新产生的那个程序的 PID 与原先的还不一样,这是怎么回事呢?』不要怀疑,如果不是 crontab 工作排程的影响,肯定有一支父程序存在,所以你杀掉子程序后, 父程序就会主动再生一支!那怎么办?正所谓这:『擒贼先擒王』,找出那支父程序,然后将他删除就对啦!

  评论这张
 
阅读(4)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017