|

楼主 |
发表于 2006-9-7 01:27:21
|
显示全部楼层
请问到底什么命令,或在什么情况下会自动产生子shell? 搞不明白。。。。。。。。。
有文章写到,如下:
父shell与子shell
用户使用的第一个shell(登录shell)是所有shell的父shell。
子shell是如何产生的:
1.用户可以在 某一shell环境下执行ksh,csh,sh命令直接产生并进入子shell。
2.shell在命令或程序运行时自动派生子shell。
·如果命令或程序是一个可执行文件,且是编译好的二进制代码,shell自动建立一个子进程并立即执行之。
·如果该文件是一个shell脚本文件,shell就派生出一个子shell去解释且执行它
又有文章写道:
在当前shell中执行内部命令不会派生子shell,因此有些内部命令才能够改变当前的shell执行环境。
在当前shell中执行外部命令或脚本时会派生子shell,所以这时命令的执行不会影响当前 的shell环境。
请问 ps 命令会产生子shell吗? ps 命令是内部命令吧,如上所说是不会派生子shell的, 但为什么用ps -l后,ps 命令也是一个进程呢?而且是调用它的那个shell的子进程~~~ 到底是为什么???
父程序与子程序即父shell与子shell吗?不一样的吧??
PID 与PPID分别是程序与其父程序的ID吗?还是shell与其父shell的ID?
谢谢 |
|