fork   使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent process,但 parent process 的环境是不会因 child process 的改变而改变的. source   使用 source 方式运行 script 时, 就是让 script 在当前 process 内执行, 而不是产生一个 chil…
在linux shell编程中, 随着脚本处理规模的变大, 会嵌套调用子进程. 但父进程以不同的方式调用子进程, 其结果和背后的机制不尽相同.这边就简单描述下source/fork/exec调用子进程的区别. 编写如下脚本 executor.sh #! /bin/bash echo "script:$0, pid: $$" 分别以source/fork/exec调用子脚本的代码片段 echo "script:$0 pid: $$, tag 1" source ./e…
各种大神的混合,做个笔记. http://blog.sina.com.cn/s/blog_7598036901019fcg.html http://blog.csdn.net/kennyrose/article/details/7532912 http://blog.sina.com.cn/s/blog_92554f0501013pl3.html http://www.cnblogs.com/peteryj/archive/2007/08/05/1944905.html 进程的四大要素: Lin…
------------------------------------------------------------------------------------------------------------------------------------------------- 转自:http://blog.csdn.net/jason314/article/details/5640969 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用…
1.定义 #include <unistd.h> #include<sys/types.h> pid_t fork( void ); pid_t 是一个宏定义,其实质是int,被定义在#include<sys/types.h>中 返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID:否则,出错返回-1 2.函数说明: 一个现有进程可以调用fork函数创建一个新进程.由fork创建的新进程被称为子进程(child process).fork函数被调用一次…
fork函数介绍 一个现有进程可以调用fork函数创建一个新进程.该函数定义如下: #include <unistd.h> pid_t fork(void); // 返回:若成功则在子进程中返回0,在父进程中返回子进程ID,若出错则返回-1 fork函数调用一次,返回两次.它在调用进程(称为父进程)中返回一次,返回值是新派生进程(称为子进程)的进程ID号:在子进程中返回一次,返回值为0.因此,返回值本身告知当前进程是子进程还是父进程. fork在子进程返回0而不是父进程的进程ID的原因在于:任…
命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令. 注:该命令通常用命令“.”来替代. 如:source /etc/profile 与 .  /etc/profile 是等效的. 注意:source命令与shell scripts的区别是: source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令.这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的B…
source命令:source命令的功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.用法:source filename 或 . filenamesource命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称. source filename 与 sh filename 及./filen…
1. fork()创建的新进程成为子进程.一次调用,两次返回,子进程的返回值是0,而父进程的返回值是新子进程的进程ID,如果出现错误,fork返回一个负值. 2. 可以通过fork返回的值来判断当前进程是子进程还是父进程. 3. 为什么在父子进程中不同?“其实就相当于链表,进程形成了链表,父进程的fpid(p 意味point)指向子进程的进程id, 因为子进程没有子进程,所以其fpid为0. 4. C程序由正文段.初始化数据段.非初始化数据段.堆和栈组成. 5. 子进程获得父进程的数据段.堆和栈…
source命令: source命令也称为“点命令”,也就是一个点符号(.).source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.因为linux所有的操作都会变成文件的格式存在. 用法:  source filename 或 . filename source命令除了上述的用途之外,还有一个另外一个用途.在对编译系统核心时常常需要输入一长串的命令,如: make mrproper make menuconfig make dep make clean make…