SSH(Ubuntu)を介してシステムにログインします。最近のコマンドプロンプトからmcを直接起動すると、起動に時間がかかり、最終的におなじみの2つのウィンドウ画面が表示されます。また、Ctrl-oを使用してコマンドプロンプトサブシェルに入ることはできません。 tmuxで起動するとすぐに起動し、ctrl-oが正常に動作します。
mcから直接straceを実行します。 http://pastebin.com/raw/br9SBZ9Y
tmuxの下のmcのstraceと比較: http://pastebin.com/raw/mYE4vMii
一部の環境設定により、途方もない一時停止が発生しているようですが、正確にはわかりません。誰でも助けることができますか?
ありがとう、ジョン
答え1
mcbash
が応答を待っている間にタイムアウトしました(画面下部のコマンドライン用に分岐されたシェル)。タイムスタンプをスクロールしてタイムアウトを確認できます。によると、man select
関連するシステムコールは指定されたファイル記述子への入力を待ちます。成功したトレースでは、FD 7 は以前に作成され、pipe()
これは子プロセスのパイプです。成功すると、bashプロンプトがjon@sonic:~$
パイプから正常に読み取られたことがわかりました。結局どのように見つけたのか覚えていませんね。申し訳ありません。
検索でexecv
作成されたpidがあるjon@sonic:~$
ことを確認してくださいbash
。それからtmux
偶然に始まった失敗事例のどこかを見つけました。私は殻のように走りたくありませんmc
!tmux
一種の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を使用してログインしなかったため、問題が発生し、間違った/新しいアカウントに投稿されました。)