web-dev-qa-db-fra.com

Comment démarrer Emacs en tant que service?

J'essaie de démarrer le démon emacs en tant que service, mais le service s'arrête immédiatement au démarrage.

dans la page Emacs se trouve ce script de service pour systemd .

[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=simple
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure

[Install]
WantedBy=default.target

mais je ne peux pas obtenir le démon pour commencer

qu'est-ce que je fais mal?

OS: Ubuntu 18.04.1 LTS

Emacs: 25,2

1
alejandrohtadinom

Le fichier de service systemd semble nécessiter quelques modifications pour fonctionner. Depuis le lien que vous avez fourni, l’option --fg-daemon est uniquement disponible pour Emacs 26.1 +, alors que la version ci-dessous devrait utiliser --daemon (a été introduite dans Emacs 23.1 =).
De plus, le Type= devrait être adopté pour la fourche, puisque emacs est la fourche.

Ainsi, l'unité systemd résultante devrait ressembler à ceci.

user@Host:~$ cat .config/systemd/user/emacs.service 
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/

[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure

[Install]
WantedBy=default.target

Après avoir appliqué vos modifications, n'oubliez pas de recharger la configuration.

user@Host:~$ systemctl daemon-reload --user

Puis démarrez le service en tant qu'utilisateur régulier.

user@Host:~$ systemctl start --user emacs
3
Thomas