[Gelöst] Emacs und systemd

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
buhtz
Beiträge: 1106
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

[Gelöst] Emacs und systemd

Beitrag von buhtz » 05.02.2022 20:25:23

Ich habe das schon mal mit Debian (raspi.debian.net) und einer leider nicht mehr auffindbaren Anleitung gemacht. Es war nur ein systemd Befehl gewesen. Ganz einfach.

Aber auf meinem anderen Debian (11 stable) System bekomme ich es nicht hin, Debianemacs als service laufen zu lassen.

Code: Alles auswählen

locate emacs | grep servic
/usr/lib/systemd/user/emacs.service
/usr/share/emacs/27.1/etc/emacs.service
/usr/share/emacs/27.1/lisp/erc/erc-services.el.gz
/usr/share/emacs/27.1/lisp/erc/erc-services.elc

sudo systemctl enable emacs
Failed to enable unit: Unit file emacs.service does not exist.

sudo systemctl status emacs
Unit emacs.service could not be found.
Und die unit selbst

Code: Alles auswählen

cat /usr/lib/systemd/user/emacs.service
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/

[Service]
Type=notify
ExecStart=/usr/bin/emacs --fg-daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
# The location of the SSH auth socket varies by distribution, and some
# set it from PAM, so don't override by default.
# Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure

[Install]
WantedBy=default.target
Zuletzt geändert von buhtz am 06.02.2022 23:06:49, insgesamt 1-mal geändert.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

buhtz
Beiträge: 1106
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Eamcs und systemd

Beitrag von buhtz » 05.02.2022 20:38:35

Der Schalter `--user` scheint den Unterschied zu machen.

Code: Alles auswählen

systemctl enable --user emacs
systemctl start --user emacs
Aber ganz durchsteige ich es noch nicht. OK, ich kann eine Unit nur für einen bestimmten Nutzer oder für alle setzen, richtig? Aber warum kann ich das bei emacs nicht selbst entscheiden? Ich meine, warum muss ich die emacs-unit auf Nutzer-Ebene "installieren" und nicht für alle?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Emacs und systemd

Beitrag von JTH » 06.02.2022 17:41:55

Der Fundort /lib/systemd/user der .service-Dateien verrät dir, dass es sich um einen Dienst handelt, der im Kontext und unter dem Namen „normaler“ Benutzer läuft. So ein Dienst wird dann gestartet, wenn du dich als Benutzer buhtz anmeldest. Das passiert bei der Anmeldung und im Namen jedes Benutzers, wenn der betreffende den Dienst aktiviert hat, wie du es jetzt getan hast.

Das Aktivieren ginge auch systemweit für alle Benutzer (läuft dann aber wie beschrieben für jeden Benutzer eine Instanz nach Anmeldung):

Code: Alles auswählen

~# systemctl --global enable emacs.service
Das wird so gelöst sein, da man einen Editor ja nicht systemweit, womöglich mit root-Berechtigungen, laufen haben will.

Mit

Code: Alles auswählen

~$ systemctl --user --type=service
siehst du, was so alles an Diensten für deinen Benutzer läuft.
Manchmal bekannt als Just (another) Terminal Hacker.

Antworten