0

所以.. 我在 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

4

1 回答 1

2

如果您的 shell 脚本中有括号,则子 shell 可能会在单独的 Unix 进程中运行,具体取决于ksh您拥有的版本。我认为ksh88i(一个非常旧的版本)仍然作为 Solaris 上的系统 shell 发布。

于 2010-01-28T23:05:06.030 回答