linuxbash 父进程 子进程】的更多相关文章

linux登陆linux,就获得一个bash,之后你的bash就是一个独立的进程,被称为pid的就是,之后你在bash下面执行的任何命令都是由这个bash所衍生的,那些被执行的命令被称为子进程.子进程只会继承父进程的环境变量,子进程不会继承父进程的自定义变量.那么你原本bash中的自定义变量在进入子进程后就会消失不见,一直到你离开子进程并回到原本的父进程后,这个变量才会出现.除非把自定义变量设置为环境变量  export name…
最近有一个需求,需要用一个java进程启动多个子进程来完成并发任务.由于必须给用户完成任务的反馈,所以需要父进程记录子进程的生命周期. exec方法返回一个Process对象,在当前进程内调用该对象的waitFor方法,然后父进程就会在该方法阻塞,那么只有在该Process结束的情况下,才会从waitFor中返回. 我写了两个类来测试: 一个是Father类: public class Father { private static int count = 0; private static i…
我们一直在强调一个概念就是进程是一个程序执行的实例,是内核在虚拟概念下创建的实体,它实例化的体现在用户态就是程序代码和代码使用的变量(存储空间),在内核态就是内核为我们每个进程所保存的数据结构(状态信息)等. 当一个进程由于某种原因停止时,内核并不是直接将为它保存的状态信息从内核移除,相反,进程会一直被保持在一种已经终止的状态,直到被它的父进程回收,当父进程回收已经终止的子进程时,内核会将子进程的退出状态传递给父进程,然后抛弃已经终止的进程,从此刻开始,这个进程才会消失,一个子进程结束但是还没有…
最近研究自动化测试,需要获取程序的运行状态及结果,下面是些参考资料. 原文地址:http://blog.csdn.net/ariesjzj/article/details/7226443 Linux下有功能强大ptrace,用于让父进程监视/修改/控制子进程的状态.Windows也提供了类似的接口,那就是Debuging API,用它可以编写用户级的调试器. 下面是一个例子,用以实现父进程创建并监视子进程运行状态. #include <stddef.h> #include <stdio.…
int status; pid_t t = fork(); if(t){     waitpid(t, &status, 0); }else{     system("vi temp.txt");     exit(0); } //父进程和子进程均执行完毕后继续执行下去   分析过程: if 和 else 还是选择分支. 主要的原因是,fork() 函数调用一次,返回两次.两次返回的区别是:子进程的返回值是0,父进程返回值为新子进程的进程ID.返回后,父进程执行waitpid(…
[原文地址]http://blog.163.com/dengjingniurou@126/blog/static/53989196200962924412524/ fork出的子进程和父进程的继承关系 2009-07-29 14:44:12|  分类: 默认分类|举报|字号 订阅     fork出来的子进程,基本上除了进程号之外父进程的所有东西都有一份拷贝,基本就意味着不是全部,下面我们要说的是子进程从父进程那里继承了什么东西,什么东西没有继承.还有一点需要注意,子进程得到的只是父进程的拷贝,…
一.摘要 详解父进程.子进程.守护进程的区别,例子稍候补充 二.定义区别 主进程 程序执行的入口,可以理解为常用的main 函数 父进程 对于子进程而言, 子进程的创造者,可有多个子进程. 任何进程都有父进程,追根溯源是系统启动程序.对于我们一般写的程序,主进程是最初始的父进程. 子进程 对于父进程而言, 父进程创建的进程, 子进程只能对应一个父进程. 守护进程 我们常言的daemon 进程,是子进程的一种状态,标记子进程与父进程同死.如果没有标记daemon , 则杀死父进程,与子进程的运行状…
结论:一个父进程产生子进程,父进程结束(kill),子进程不会结束,子进程被init进程托管 下面是过程: d.sh脚本是一个ping命令,执行d.sh 目前,103310 进程为父进程,103344为子进程 现在把父进程kill掉. 最终发现,子进程103344被托管到1进程下. 参考: 孤儿进程与僵尸进程[总结]…
本节目标: 僵进程 SIGCHLD wait waitpid 一,僵尸进程 当一个子进程先于父进程结束运行时,它与其父进程之间的关联还会保持到父进程也正常地结束运行,或者父进程调用了wait才告终止. 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态. 进程表中代表子进程的数据项是不会立刻释放的,虽然不再活跃了,可子进程还停留在系统里,因为它的退出码还需要保存起来以备父进程中后续的wait调用使用.它将称为一个"僵进程&…
#include<stdio.h>   #include<string.h>   #include<stdlib.h>   #include<unistd.h>      void main()   {       char str[6]="hello";          pid_t pid=fork();          if(pid==0)       {           str[0]='b';           print…