我知道这与编程没有直接关系,但我很难过,因为 Emacs 是我的主要编程工具......
我正在尝试设置 Tramp 以连接到我的测试主机。我正在使用/ssh:host:.bashrc
或使用它来调用它,/scp:host:.bashrc
但是这两者迟早都会遇到同样的问题。
他们只能在进程楔入之前第一次尝试发送 perl 脚本,我被迫从客户端终止 ssh 会话。
例如:
tramp: Opening connection for username@host using scp...
tramp: Waiting 60s for local shell to come up...
tramp: Sending command `ssh host -l username -e none || exit'
tramp: Waiting for prompts from remote shell
tramp: Waiting 60s for prompt from remote shell on host host
tramp: Found remote shell prompt on `host'
tramp: Waiting 30s for remote `/bin/sh' to come up...
tramp: Setting up remote shell environment
tramp: Determining coding system
tramp: Waiting 30s for `HISTFILE=$HOME/.tramp_history; HISTSIZE=1; export HISTFILE; export HISTSIZE'
tramp: Waiting 30s for `set +o vi +o emacs'
tramp: Waiting 30s for `unset MAIL MAILCHECK MAILPATH'
tramp: Waiting 30s for `unset CDPATH'
tramp: Setting shell prompt
tramp: Remote `/bin/sh' groks tilde expansion, good
tramp: Finding command to check if file exists
tramp: Finding a suitable `ls' command
tramp: Checking remote `/bin/ls' command for `-n' option
tramp: Testing remote command `/bin/ls' for -n...okay
tramp: Using remote command `/bin/ls' for getting directory listings
tramp: Sending the Perl script `tramp_file_attributes'...
tramp-wait-for-output: Process has died
此跟踪正在使用该scp
方法。该ssh
方法如下所示:
tramp: Opening connection for username@host using ssh...
tramp: Waiting 60s for local shell to come up...
tramp: Sending command `ssh host -l username -e none || exit'
tramp: Waiting for prompts from remote shell
tramp: Waiting 60s for prompt from remote shell on host host
tramp: Found remote shell prompt on `host'
tramp: Waiting 30s for remote `/bin/sh' to come up...
tramp: Setting up remote shell environment
tramp: Determining coding system
tramp: Waiting 30s for `HISTFILE=$HOME/.tramp_history; HISTSIZE=1; export HISTFILE; export HISTSIZE'
tramp: Waiting 30s for `set +o vi +o emacs'
tramp: Waiting 30s for `unset MAIL MAILCHECK MAILPATH'
tramp: Waiting 30s for `unset CDPATH'
tramp: Setting shell prompt
tramp: Remote `/bin/sh' groks tilde expansion, good
tramp: Finding command to check if file exists
tramp: Finding a suitable `ls' command
tramp: Checking remote `/bin/ls' command for `-n' option
tramp: Testing remote command `/bin/ls' for -n...okay
tramp: Using remote command `/bin/ls' for getting directory listings
tramp: Sending the Perl `mime-encode' implementations.
tramp-wait-for-output: Process has died
如您所见,最后发生的事情是尝试发送 Perl 脚本。该进程正在死去,因为我在另一个 shell 中杀死它,否则 emacs 永远不会从这里回来。
我正在FreeBSD 6.2-RELEASE-p5
从 OSX 10.5.7 连接,如果有什么不同的话,2.0.58-pre
在 Carbon Emacs 22.3.1 版本中使用 Tramp。
也许在接收端(FreeBSD 服务器)上 sshd 的 pid 上的 strace 会告诉您它锁定的位置。您将需要使用 -f 来跟踪子进程。如果 sshd 的 pid 为 3125: