0

我正在使用 SharpSsh 从 ASP.NET/C# 运行脚本。我意识到当脚本运行并且我从 unix 执行 ps -ef grep 时,我看到相同的脚本运行了两次,一个在 csh -c 中,另一个在 ksh 中。该脚本有 shebang ksh,所以我不确定为什么 csh 的副本也在运行。此外,如果我直接从 unix 运行相同的脚本,则只有一个副本与 ksh 一起运行。脚本中没有运行其他 shell。

4

1 回答 1

1

大多数 Unix/Linux 现在都有一个命令或选项,将显示进程树,带有缩进列表,寻找 -t 或 -T 选项到 ps OR ptree OR ???

  USER     PID    PPID    START TT        TIME CMD
  daemon       1       1 11-03-06 ?            0 init
  myusr   221568       1 11-03-07 tty10    1.00s  \_ -ksh
  myusr   350976  221568 07:52:11 tty10        0  |   \_ ps -efT

我敢打赌,您会看到 csh 是包含您的脚本作为参数的用户登录 shell(您可能必须使用 ps 的不同选项来查看 csh 进程的完整命令行)并且作为子进程您将看到 ksh 执行您的脚本,以及 ksh 下的进一步子进程,用于脚本调用的任何外部命令。

我希望这有帮助。

PS,因为您似乎是新用户,如果您得到对您有帮助的答案,请记住将其标记为已接受,或者给它一个+(或-)作为有用的答案。

于 2011-03-10T14:15:09.523 回答