Ich habe oft eine unvollständige oder ungültige Emacs-Konfiguration, die das normale Verhalten kill-emacs
so bricht, dass es bei einem Fehler stoppt.
In diesem Fall möchte ich Emacs gewaltsam töten, ohne die PID zu jagen und eine kill
aus der Shell herauszugeben. Kann ich das in reinem Emacs Lisp machen?
emacs-internals
PythonNut
quelle
quelle
kill-emacs
dies nicht funktioniert, werden möglicherweise auch andere Elisp-Ansätze verschmutzt, da sie wahrscheinlich auf diekill-emacs
eine oder andere Weise aufgerufen werden . Welchen Fehler bekommen Sie? Es kann einfacher sein, den Fehler zu beheben.kill -9
zum Beispiel die aktuelle Emacs-PID aufruft . Sie müssten sehr durcheinander sein, um das zu brechen.kill-emacs-hook
,nil
vor dem Anruf auf einzustellenkill-emacs
. Sie können auch Emacs 'PID verwendenemacs-pid
und Selbstmord begehen, indem Siecall-process
mit "kill -9
" anrufen .Antworten:
Sie können versuchen
kill-emacs-hook
,nil
vor dem Aufruf Folgendes einzustellenkill-emacs
:Alternativ können Sie die PID von Emacs verwenden
emacs-pid
und Selbstmord begehen, indem Siecall-process
mit "kill -9
" anrufen :quelle
-9
Inkill -9
) alle Prozesse verwaist, die von Emacs erzeugt wurden, genau wie es passieren würde, wenn Emacs ein einfaches Shell-Skript wären.Manchmal habe ich mehrere nicht erreichbare Emacs-Prozesse. Mein Emacsclient startet normalerweise automatisch einen Emacs und ruft auf -
server-start
Ich denke, irgendwo in meiner Konfiguration gibt es einen Fehler, der dazu führt, dass dies mehr als einmal passiert.Ich töte das zusätzliche Emacsen mit
killall emacs
in einer Muschel. Bisher-9
wurde nicht benötigt. (Es funktioniert auch, wenn nur ein Emacs läuft und ich keine PID jagen muss!)quelle
-9
benötigt. Das bedeutet natürlich, dass Emacs keinen Selbstmord begehen können, aber ich füge es für alle Fälle hinzu.ein:jupyter-notebook
alle anderen Methoden verhindert hatte. Ich denke, es hing irgendwo, aber ich hatte bereits alle Python-Prozesse beendet und alle Puffer getötet.