mc启动缓慢

mc启动缓慢

我通过 ssh (ubuntu) 登录系统。最近,当我直接从命令提示符启动 mc 时,需要很长时间才能启动并最终呈现熟悉的两窗格屏幕。另外,我无法进入命令提示符子 shell(使用 ctrl-o)。如果我在 tmux 下启动它,它会立即启动,并且 ctrl-o 可以正常工作。

似乎某些环境设置导致了巨大的停顿,但我无法确定它。有人可以帮忙吗?

谢谢,乔恩

答案1

mc 等待来自bash(它为屏幕底部的命令行分叉的 shell)的响应超时。您可以通过滚动时间戳来查找超时。根据man select,相关系统调用等待指定文件描述符上的输入。在成功的跟踪中,FD 7 是之前创建的pipe()- 它是通往子进程的管道。在成功的情况下,我发现 bash 提示符jon@sonic:~$已成功从管道中读出。我不记得最后是怎么找到的,抱歉。

搜索execv确认写入的pidjon@sonic:~$bash。然后我碰巧注意到tmux失败案例中的某个地方开始了。 我怀疑是否喜欢像贝壳一样mc奔跑!tmux

您必须有某种运行的 bash 启动脚本tmux 如果它已经在里面,它会避免运行它tmux。所以mc里面tmux还好,但外面不行。

我会确保tmux登录脚本,而不是为 bash 子 shell 运行的脚本。这意味着.bash_profile又不是.bashrc。这里有一些与我的想法相符的信息:https://apple.stackexchange.com/questions/71929/how-to-change-mc-midnight-command-bash-prompt-on-os-x

答案2

谢谢,sourcejedi - 你击中了要害。我最近在 .bashrc 中添加了一些行,以便在登录时自动启动 tmux - 呃!我应该意识到其中的联系。这也是我无法从 mc 内进入子 shell(使用 ctrl-o)的原因。有关信息,启动 tmux 的行如下:

# 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

极大的失败。我现在已将其移至 .bash_profile 中,一切正常!谢谢!

乔恩

(顺便说一句,我是原来的海报..因未使用 openauth 登录而导致在错误/新帐户下发布而打嗝)

相关内容