mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-16 09:50:25 +00:00
19f5f7b19b
With --[bg-]daemon and Type=forking, systemd will only consider the daemon to have fully started up once the original process exits, and will wait until then to start units depending on the Emacs service. To get the same functionality with --fg-daemon, use Type=notify instead of Type=simple and explicitly send a readiness notification to systemd at the point where the forked process would in --bg-daemon mode notify its parent process and cause it to exit. Similarly, notify systemd at the beginning of the shutdown process as well. (Both of these calls are successful no-ops if emacs was not started by systemd.) * etc/emacs.service: Update Type. * src/emacs.c (daemon-initialized) [HAVE_LIBSYSTEMD]: * src/emacs.c (kill-emacs) [HAVE_LIBSYSTEMD]: Call sd_notify().
18 lines
560 B
Desktop File
18 lines
560 B
Desktop File
## If your Emacs is installed in a non-standard location, you may need
|
|
## to copy this file to a standard directory, eg ~/.config/systemd/user/ .
|
|
## If you install this file by hand, change the "Exec" lines below
|
|
## to use absolute file names for the executables.
|
|
[Unit]
|
|
Description=Emacs text editor
|
|
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
|
|
|
|
[Service]
|
|
Type=notify
|
|
ExecStart=emacs --fg-daemon
|
|
ExecStop=emacsclient --eval "(kill-emacs)"
|
|
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=default.target
|