mc lento para iniciar [duplicado]

2

Eu entro em um sistema via ssh (ubuntu). Recentemente, quando inicio o mc diretamente a partir do prompt de comando, demora muito tempo para iniciar e, finalmente, apresentar a tela familiar de dois painéis. Além disso, não consigo acessar o subshell do prompt de comando (usando ctrl-o). Se eu iniciá-lo no tmux, ele é iniciado instantaneamente e o ctrl-o funciona normalmente.

  • executando o strace no mc diretamente: link

  • comparado ao strace no mc no tmux: link

Parece que alguma configuração de ambiente está causando uma grande paralisação, mas não consigo identificá-lo. Alguém pode ajudar, por favor?

Obrigado, Jon

    
por ebahn 14.08.2016 / 14:31

2 respostas

2

mc está esgotando o tempo limite aguardando uma resposta de bash (o shell que ele cria para a linha de comando na parte inferior da tela). Você pode encontrar o tempo limite percorrendo os timestamps. Conforme man select , a chamada do sistema em questão aguarda a entrada nos descritores de arquivos especificados. No rastreamento bem-sucedido, o FD 7 é criado anteriormente por pipe() - é um canal para o processo filho. No caso de sucesso, encontrei o prompt bash jon@sonic:~$ sendo lido com sucesso do canal. Não me lembro como encontrei isso, desculpe.

A pesquisa por execv confirma o pid que escreve jon@sonic:~$ is bash . Então aconteceu de eu notar tmux sendo iniciado em algum lugar no caso de falha. Eu duvido que mc goste de executar tmux como shell!

Você deve ter algum tipo de script de inicialização do bash que execute tmux . Evita executá-lo se ele já estiver dentro de tmux . Então mc dentro de tmux está bem, mas não fora.

Eu teria certeza de iniciar tmux de um script login , não dos scripts que são executados para sub-shells bash. Isso significa .bash_profile e não .bashrc . Há algumas informações sobre isso aqui que correspondem ao meu pensamento: link

    
por 14.08.2016 / 14:59
1

Obrigado, sourcejedi - você acertou em cheio na cabeça. Eu recentemente adicionei algumas linhas ao meu .bashrc para poder iniciar automaticamente o tmux no login - duh! Eu deveria ter percebido a conexão. É também por isso que eu não pude cair em um subshell (usando ctrl-o) de dentro do mc. Para informações, as linhas para iniciar o tmux foram as seguintes:

# enable autostart of tmux
if [[ "$TERM" != "screen" ]] ; then
# &&  [[ "$SSH_CONNECTION" == "" ]]; then
    # Attempt to discover a detached session and attach 
    # it, else create a new session

    WHOAMI=$(whoami)
    if tmux has-session -t $WHOAMI 2>/dev/null; then
        tmux -2 attach-session -t $WHOAMI
    else
        tmux -2 new-session -s $WHOAMI
    fi
fi

Grande falha. Agora mudei isso para .bash_profile e tudo funciona! Obrigado!

Jon

(btw, eu sou o cartaz original .. soluço com não fazer login com openauth causado postar em conta errada / nova)

    
por 14.08.2016 / 15:43