Я следовал инструкциям
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files
создать emacs.service в /etc/systemd/system/
, как это
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=forking
ExecStart=/home/hye/bin/emacs --fg-daemon
ExecStop=/home/hye/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=always
[Install]
WantedBy=default.target
, затем я выполняю:
systemctl daemon-reload
systemctl start emacs.service
emacs.service успешно запущен
Однако, когда я запускаю emacsclient -t
в терминале, он показывает:
emacsclient: can't find socket; have you started the server?
Я обнаруживаю, что если я переключаюсь на root и запускаю emacsclient -t
в терминале, он работает хорошо.
На самом деле, имя хоста /tmp/emacs0/server
, но я не могу получить к нему доступ, так как его владелец - root.
emacsclient -t -s /tmp/emacs0/server
emacsclient: can't stat /tmp/emacs0/server: Permission denied
emacsclient: error accessing socket "/tmp/emacs0/server"
Я пыталсячтобы добавить опцию User в emacs.service, как это
[Service]
User=hye
Group=hye
Type=forking
, но systemctl не может запустить эту службу, это всегда не удается.
Я также пытался поместить emacs.service в~/.config/systemd/user/
, но Centos 7 не поддерживает systemctl --user
.
Системная информация:
Centos 7.6
Emacs-26.1 manually installed
Любой совет будет оценен!