Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sortir de emacs daemon

8 réponses
Avatar
Erwan David
J'ai donc mon emacs lancé en démon en début de session, et ensuite
emacsclient -c comme éditeur.

En fin de session je voudrais tuer proprement le démon. En effet si je
le laisse pour la session suivante, il n'a plus le bon accès à
ssh-agent, ce qui fait que tramp marche beaucoup moins bien.

J'ai essayé en fin de session un pkill emacs, le problème est que ça le
tue et ne passe pas les hooks, en particulier, ça ne sauve pas le
.recentf

J'ai essayé emacsclient -e "(kill-emacs)" qui marche bien s'il n'y a
aucune frame ouverte, mais s'il reste une frame, ça bloque sur la
question "The current server still has clients; delete them? (yes or no)"

Je n'ai pas trouvé comment lui faire zapper la question...

Si quelqu'un a eu le même problème et sais comment faire, merci.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé

8 réponses

Avatar
Damien Wyart
* Erwan David in fr.comp.applications.emacs:
J'ai essayé emacsclient -e "(kill-emacs)" qui marche bien s'il n'y
a aucune frame ouverte, mais s'il reste une frame, ça bloque sur la
question "The current server still has clients; delete them? (yes or no)"



Je ne reproduis pas, mais cela peut dépendre de la version d'Emacs (j'ai
un snapshot de mi-décembre) et de la configuration.

Peux-tu essayer de lancer emacs sans lecture de la config ?

Sinon, deux choses à essayer :

emacsclient -n -e "(kill-emacs)"

emacsclient -e "(run-with-timer 0 0 'kill-emacs)"

--
DW
Avatar
Lucas Levrel
Le 6 janvier 2011, Erwan David a écrit :

J'ai essayé en fin de session un pkill emacs, le problème est que ça le
tue et ne passe pas les hooks, en particulier, ça ne sauve pas le
.recentf



Peut-être
pkill -HUP emacs
?

--
LL
Avatar
Erwan David
Damien Wyart écrivait :

* Erwan David in fr.comp.applications.emacs:
J'ai essayé emacsclient -e "(kill-emacs)" qui marche bien s'il n'y
a aucune frame ouverte, mais s'il reste une frame, ça bloque sur la
question "The current server still has clients; delete them? (yes or no)"



Je ne reproduis pas, mais cela peut dépendre de la version d'Emacs (j'ai
un snapshot de mi-décembre) et de la configuration.



J'ai la version de la debian squeeze (23.2.1)

Peux-tu essayer de lancer emacs sans lecture de la config ?



je teste en emacs -q --no-site-file --daemon : même comportement

Sinon, deux choses à essayer :

emacsclient -n -e "(kill-emacs)"



même chose sauf que ça rend la main avant que j'aie répondu dans emacs...

emacsclient -e "(run-with-timer 0 0 'kill-emacs)"



*ERROR*: Invalid repetition interval



--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Erwan David
Lucas Levrel écrivait :

Le 6 janvier 2011, Erwan David a écrit :

J'ai essayé en fin de session un pkill emacs, le problème est que ça le
tue et ne passe pas les hooks, en particulier, ça ne sauve pas le
.recentf



Peut-être
pkill -HUP emacs
?



ça ne sauve pas plus le .recentf...

Je me débrouille pour l'instant avec un

emacsclient -e "(recentf-save-list)"
pkill emacs

Mais ça n'est pas propre, car si je fauis bien ce qu'il fauut pôur
recentf, je n'ai pas de garantie qu'il ne manque pas l'équivalent pour
d'autres packages.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Erwan David
Lucas Levrel écrivait :

Le 6 janvier 2011, Erwan David a écrit :

J'ai essayé en fin de session un pkill emacs, le problème est que ça le
tue et ne passe pas les hooks, en particulier, ça ne sauve pas le
.recentf



Peut-être
pkill -HUP emacs
?



ça ne sauve pas plus le .recentf...

Je me débrouille pour l'instant avec un

emacsclient -e "(recentf-save-list)"
pkill emacs

Mais ça n'est pas propre, car si je fais bien ce qu'il fauut pôur
recentf, je n'ai pas de garantie qu'il ne manque pas l'équivalent pour
d'autres packages.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Erwan David
Bon, en fait il y a le kill-emacs-hook, qui chez moi vaut

kill-emacs-hook is a variable defined in `C source code'.
Its value is
(#[nil "300301!207"
[server-mode -1]
2]
ac-comphist-save recentf-save-list tramp-dump-connection-properties)


Je savais bien que j'oubliais des choses...

Malheureusement un
emacsclient -e '(run-hooks kill-emacs-hook)' pose le même problème.

Cependant la doc dit :

Documentation:
Hook to be run when `kill-emacs' is called.
Since `kill-emacs' may be invoked when the terminal is disconnected (or
in other similar situations), functions placed on this hook should not
expect to be able to interact with the user. To ask for confirmation,
see `kill-emacs-query-functions' instead.

La partie de bytecode illisible est surement responsable, et d'après la
doc c'est un bug.

Ou alors il faut que je me penche sur la configuration du mode
serveur...



--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Damien Wyart
* Erwan David in fr.comp.applications.emacs:
> emacsclient -n -e "(kill-emacs)"

même chose sauf que ça rend la main avant que j'aie répondu dans emacs...



Donc ça répond à ce que tu veux, ou ça reste une sortie "sale" ?

> emacsclient -e "(run-with-timer 0 0 'kill-emacs)"

*ERROR*: Invalid repetition interval



Pompé ici : http://osdir.com/ml/help-gnu-emacs-gnu/2009-08/msg00639.html

L'auteur n'avait donc pas testé son code...

Pas d'autre idée pour l'instant.
--
DW
Avatar
Erwan David
Damien Wyart écrivait :

* Erwan David in fr.comp.applications.emacs:
> emacsclient -n -e "(kill-emacs)"



même chose sauf que ça rend la main avant que j'aie répondu dans emacs...



Donc ça répond à ce que tu veux, ou ça reste une sortie "sale" ?



ça continue à poser la question, ce que je veux éviter.

> emacsclient -e "(run-with-timer 0 0 'kill-emacs)"



*ERROR*: Invalid repetition interval



Pompé ici : http://osdir.com/ml/help-gnu-emacs-gnu/2009-08/msg00639.html

L'auteur n'avait donc pas testé son code...

Pas d'autre idée pour l'instant.



Merci en tout cas.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé