我最近开始通过 zsh 中的一个函数包装我的 ssh 调用,我注意到现在如果我关闭带有活动 ssh 进程的终端(Mac OS X / iTerm2),ssh 进程不会死,而是孤立的(PPID =1)。这随后会连接该 ssh 连接上的任何 tty 应用程序(即屏幕)。
我已将这个问题缩小到 zsh + 函数。这就是重现所需的全部内容:
zsh# function foo() { ssh user@host.com }
zsh# foo
--> Close the terminal window (via cmd-w)
zsh# ps ax -o pid,ppid,command | tee >(head -1) | grep -v grep | grep ssh
PID PPID COMMAND
29361 1 ssh user@host
zsh# kill 29361
--> everything is OK again.
我已经验证这是一个 zsh 问题,因为它不会在 bash 中重现,并且我已经验证它不是 ssh 问题,因为它确实使用 zsh 中从函数内部启动的任何命令进行重现。
我已经使用 zsh 4.2.x-5.xx 重现了这个问题
我不了解观察到的行为,但想了解。我不确定这是预期的还是 zsh 中的错误。