所以..我在Solaris8上使用KSH很长时间了,但这是我第一次得到这样的东西:
我启动一个脚本 - 让我们称之为splitCfg。当我调用pgrep -x splitCfg
时,我找到了这个脚本的两个实例 - 主要实例和我脚本的子节点(ps输出):
root 28069 25107 0 20:22:01 pts/10 0:00 splitCfg
root 4668 28069 0 20:22:50 pts/10 0:00 splitCfg
如您所见 - 第一个实例是孩子的父母。但是 - 没有从主脚本创建的子进程。当我再次调用ps或pgrep或ptree时: 1.没有孩子的过程 要么 2.一个新的子过程
我正在寻找一些解释。我相信我已经搜索了整个互联网,所以是时候向大家询问你的宝贵时间了:))
是某种KSH错误(请注意我使用的是Solaris 8中的旧版本)或者我错过了什么。我知道单个脚本应该创建一个PID并在完成后保留它。
谢谢, Saperzasty
答案 0 :(得分:2)
如果shell脚本中有括号,则子shell可以在单独的Unix进程中运行,具体取决于您拥有的ksh
版本。我认为ksh88i
(一个非常旧的版本)仍在Solaris上作为系统shell发布。