【程序与进程】
在 Linux 中,程序一般放置于磁盘中,然后通过用户的执行来触发,触发后会加载到内存中称为一个个体,这个个体即被称为进程
为了让系统可对进程进行管理,系统会给予这个进程的触发者的权限与属性,并包括进程所需要的脚本、文件数据等,最后再给予一个 PID,系统会根据 PID 来判断该进程是否具有权限进行工作
需要注意的是,由进程衍生出来的其他进程在一般状态下,也会沿用该进程的相关权限
【父进程与子进程调用流程】
在 Shell 脚本的编写原则与执行 中,简单的介绍过 Linux 中的父进程与子进程,他们之间最大的复杂点在于进程间的调用
Linux 中进程调用被称为 fork-and-exec 流程,进程会通过父进程以 fork 的方式产生一个一模一样的子进程,然后被复制出来的子进程会以 exec 的方式来加载实际要进行的进程,最终形成一个子进程
如下图所示,系统先以 fork 的方式复制一个与父进程相同的暂存进程,这个进程与父进程的唯一区别是 PID 不同,同时多一个 PPID 的参数,即父进程的 PID,之后暂存进程以 exec 的方式加载实际要执行的程序