Talvez o strace no pid do sshd na extremidade receptora (o servidor do FreeBSD) mostre onde ele está travando. Você precisará seguir processos filho com -f. Se o pid do sshd for 3125:
sudo strace -vfp 3125 -o sshdStraceDump.txt
Eu sei que isso não é diretamente relacionado à programação, mas estou perplexo, e já que o Emacs é minha principal ferramenta de programação ...
Estou tentando configurar o Tramp para se conectar ao meu host de teste. Estou chamando-o usando /ssh:host:.bashrc
ou /scp:host:.bashrc
, mas ambos correm para o mesmo problema, mais cedo ou mais tarde.
Eles só chegam até a primeira tentativa de enviar um script perl antes do processo e eu sou forçado a matar a sessão ssh de um cliente.
Por exemplo:
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
Esse rastreamento está usando o método scp
. O método ssh
se parece com isto:
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
Como você pode ver, a última coisa que acontece é tentar enviar o script Perl. O processo está morrendo porque eu estou matando em outra casca, caso contrário o emacs nunca volta disso.
Estou me conectando com FreeBSD 6.2-RELEASE-p5
do OSX 10.5.7, se fizer alguma diferença, usando Tramp 2.0.58-pre
na compilação do Carbon Emacs 22.3.1.
Talvez o strace no pid do sshd na extremidade receptora (o servidor do FreeBSD) mostre onde ele está travando. Você precisará seguir processos filho com -f. Se o pid do sshd for 3125:
sudo strace -vfp 3125 -o sshdStraceDump.txt
Tags remote-access emacs tramp