sortir de emacs daemon

Le
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é
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Damien Wyart
Le #22993871
* Erwan David
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
Lucas Levrel
Le #22993861
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
Erwan David
Le #22994051
Damien Wyart
* Erwan David
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é
Erwan David
Le #22994041
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
?



ç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é
Erwan David
Le #22994081
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
?



ç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é
Erwan David
Le #22994141
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é
Damien Wyart
Le #22994331
* Erwan David
> 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
Erwan David
Le #22994321
Damien Wyart
* Erwan David
> 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é
Publicité
Poster une réponse
Anonyme