33

Emacsで内部プロセスを強制終了する方法は?たとえば、私はを実行しM-x shellます。

で実行中のプロセスを確認できM-x list-processesますが、このリストからプロセスを強制終了するにはどうすればよいですか?

4

5 に答える 5

27

このためのデフォルトのキーバインディングはありません。ただし、pjammerの回答list-processes+(特に)にキルバインディングが含まれていることC-kと、(同じキーに対して)キルバインディングのみを提供するJoaoTavoraの回答を参照してください。

M-: (kill-process) RETevent_jrは、現在のバッファのプロセスを強制終了するために使用できるコメントで指摘しています。

より一般的には、を使用できますM-: (kill-process PROCESS) RET。ここで、PROCESS「プロセス、バッファー、またはプロセスまたはバッファーの名前である可能性があります」。これらの名前は、の出力に表示されるとおりですlist-processes。競合が発生した場合は、プロセス名がバッファ名よりも優先されます。したがって、プロセス名を指定する習慣をつけるのがおそらく最善です。

あるいは、Emacs 23+には、M-x proced実行に似た一般的なシステムプロセスマネージャー()がありtop、(任意の)シグナルを送信するためのデフォルトのバインディング(k)があります。もちろん、あなたが興味を持っているプロセスは、そのリストでははるかに明白ではないかもしれません。


編集:決して遅くなるよりはましです:)以下を使用M-x kill-process RETすることができます(Emacs 26.1でテスト済み):

;; Enable M-x kill-process (to kill the current buffer's process).
(put 'kill-process 'interactive-form
     '(interactive
       (let ((proc (get-buffer-process (current-buffer))))
         (if (process-live-p proc)
             (unless (yes-or-no-p (format "Kill %S? " proc))
               (error "Process not killed"))
           (error (format "Buffer %s has no process" (buffer-name))))
         nil)))
于 2012-05-16T23:29:52.183 に答える
18

このスレッドは古くからありますが、これが私にとって完璧に機能する非常に簡単なハックです

(define-key process-menu-mode-map (kbd "C-k") 'joaot/delete-process-at-point)

(defun joaot/delete-process-at-point ()
  (interactive)
  (let ((process (get-text-property (point) 'tabulated-list-id)))
    (cond ((and process
                (processp process))
           (delete-process process)
           (revert-buffer))
          (t
           (error "no process at point!")))))
于 2013-08-03T14:47:40.850 に答える
10

別の方法:

使用できますM-x eval-expression RET

次に、次のように入力します。(delete-process "<name-of-the-process>") RET

"name-of-the-process"以前はから取得されましたM-x list-processes RET)。

を繰り返して、プロセスが強制終了されたことを確認しますM-x list-processes RET)。

以上です。

于 2013-05-13T14:38:07.153 に答える
3

リストプロセスと呼ばれる代わりに使用できる新しいモードまたはアドオンがあるようです+

于 2012-05-17T01:26:41.350 に答える
0

を使用する場合は、counselを実行できますM-x counsel-list-processes。次に、入力M-oしてアクションを表示できます。アクションの1つはですkill

于 2021-08-18T16:03:43.663 に答える