2012-01-20 27 views
12

ローカルのemacsシェル(M-x shellで始まる)からリモートサーバーで作業すると仮定します。時間がかかりすぎるプロセス(例えば、膨大な量のファイルを含むディレクトリにあるls)を実行すると、そのプロセスを停止したいとします(端末ではcontrol-cを使用します)。私はC-c C-cを試しましたが、それはシェル全体を強制終了します...シェル全体ではなく、リモートサーバー上で実行中のプロセスのみを強制終了できますか?シェルを強制終了せずにリモートプロセスを終了する方法

更新

ステップバイステップ:

1) M-x shell (execute on local machine) 
2) ssh [email protected] (execute on local machine) 
3) sleep 60 (execute on remote machine) 
4) C-c C-c (execute in the current shell) 

=>ではなく、まだリモートホストとだけスリープコマンドであることの、全体のリモート接続がクローズされ殺害されているとあなた再度あなたのローカルマシンにあります。

+0

あなたが記述した問題を再現することはできません。どのように体験するのか、段階的な説明はありますか? – Sean

+0

ありがとう、Sean。私はステップバイステップの説明を含む質問を更新しました –

+0

私はzshとemacsを使って全く同じ問題を抱えています21.4.1かなり古いものです... – sandos

答えて

21

私が上記の手順を実行すると、自分自身がリモートのシェルプロンプトに戻ります。私はEmacs 23.1.1を使用しています。

私は、C-q C-c RETもリモートプロセスを中断し、リモートシェルプロンプトに私を残していることがわかりました。代わりのアプローチとしてそれを試みるかもしれません。

+1

こんにちは、ショーン、助けてくれてありがとう。確かに、 'C-q C-c RET'が動作します。私はまだ 'C-c C-c'がなぜ機能していないのか不思議です。私は使用しています:bob.porkrind.orgの[Mac OS X 10.7.2で] 2012-01-15のGNU Emacs 24.0.92.1(x86_64-apple-darwin、NS apple-appkit-1038.36) –

+0

C-q C-cは私と私の古いemacs + zshで動作します!ありがとう! – sandos

+0

@Seanありがとうございました。あなたの答えに[this link](https://www.cs.utah.edu/dept/old/texinfo/emacs18/emacs_8.html)を含めるべきです。次の文字がバッファに入力されます。 –

-1

あなたはemacsの中からコマンドを殺したい場合、それは私には不明であるが、あなたは、交互に(あなたが画面またはtmuxのを使用している場合)、別の接続やウィンドウを開いて

標準

ps aux | grep hungprocess 
を行う可能性があり、

kill hungprocess_pid 

なんらかの理由で、私はそのような方法がうまくいかず、私もemacsをやめさせてしまうと思い続けました。 Emacsでgpgで暗号化されたファイルを開くときに私のgpgピンポントリエージェントを設定していないとき、私はそのような方法を何度も使用してきました。 Emacs/gpgはGUIを起動しようとするので、emacsをハングし、リモートでsshしているときにGUIの入力を待ちます。

関連する問題