mcがゆっくり始まります。

mcがゆっくり始まります。

SSH(Ubuntu)を介してシステムにログインします。最近のコマンドプロンプトからmcを直接起動すると、起動に時間がかかり、最終的におなじみの2つのウィンドウ画面が表示されます。また、Ctrl-oを使用してコマンドプロンプトサブシェルに入ることはできません。 tmuxで起動するとすぐに起動し、ctrl-oが正常に動作します。

一部の環境設定により、途方もない一時停止が発生しているようですが、正確にはわかりません。誰でも助けることができますか?

ありがとう、ジョン

答え1

mcbashが応答を待っている間にタイムアウトしました(画面下部のコマンドライン用に分岐されたシェル)。タイムスタンプをスクロールしてタイムアウトを確認できます。によると、man select関連するシステムコールは指定されたファイル記述子への入力を待ちます。成功したトレースでは、FD 7 は以前に作成され、pipe()これは子プロセスのパイプです。成功すると、bashプロンプトがjon@sonic:~$パイプから正常に読み取られたことがわかりました。結局どのように見つけたのか覚えていませんね。申し訳ありません。

検索でexecv作成されたpidがあるjon@sonic:~$ことを確認してくださいbash。それからtmux偶然に始まった失敗事例のどこかを見つけました。私は殻のように走りたくありませんmctmux

一種のbash起動スクリプトが実行されている必要がありますtmux すでに内部にいる場合は実行を避けますtmux。だからmc内側は大丈夫ですtmuxが、外側はそうではありません。

tmux私は確かにしますログインbash サブシェルに対して実行されるスクリプトではなく、スクリプトです。つまり、そうで.bash_profileはありません.bashrc。私の考えと一致する情報は次のとおりです。https://apple.stackexchange.com/questions/71929/how-to-change-mc-midnight-command-bash-prompt-on-os-x

答え2

おかげで、sourcejedi - ちょうど正しいと言った。最近ログインしたときにtmuxを自動的に起動するために.bashrcにいくつかの行を追加しました。その関連性を悟らなければならなかったのに。これがmc内で(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を使用してログインしなかったため、問題が発生し、間違った/新しいアカウントに投稿されました。)

関連情報