Почему Tramp зависает при отправке сценариев Perl на удаленный хост?

Я знаю, что это не связано непосредственно с программированием, но я в тупике, и, поскольку 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. Процесс умирает, потому что я убиваю его в другой оболочке, иначе emacs никогда не вернется из этого.

Я подключаюсь к FreeBSD 6.2-RELEASE-p5 от OSX 10.5.7, если это имеет какое-либо значение, используя Tramp 2.0.58-pre в сборке Carbon Emacs 22.3.1.

1 ответ

Возможно, strace на pid sshd на принимающей стороне (сервере FreeBSD) покажет вам, где он блокируется. Вам нужно следить за дочерними процессами с -f. Если pid sshd - 3125:

sudo strace -vfp 3125 -o sshdStraceDump.txt
Другие вопросы по тегам