На Ubuntu 18.04 рабочий emacs 27, emacs устанавливает конфигурацию systemd
$ cat ~/.config/systemd/user/default.target.wants/emacs.service
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=simple
ExecStart=/usr/local/bin/emacs --fg-daemon
ExecStop=/usr/local/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure
[Install]
WantedBy=default.target
Но когда я запускаю emacsclient, поскольку я всегда делал в прошлом (использующий предыдущие версии emacs/ubuntu), мои переменные среды больше не импортируются. Как может изменить сервис для импорта переменных среды, настроенных в моей оболочке init файлы?
Можно выполнить оболочку входа в систему прежде, чем выполнить emacs двоичный файл, чтобы считать и проанализировать среду. Как так:
ExecStart=/bin/bash -l -c 'exec /usr/local/bin/emacs --fg-daemon'
По умолчанию systemd выполняет все команды в чистой среде для обеспечения непротиворечивости и восстанавливаемых сервисных сред выполнения. Так, при необходимости в настройках новой среды обычно необходимо устанавливать их сами.