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