help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: make install does not setup systemd correctly


From: Noam Postavsky
Subject: Re: make install does not setup systemd correctly
Date: Sun, 15 Jul 2018 20:40:21 -0400

On 15 July 2018 at 06:58, Bingo <right.ho@gmail.com> wrote:
> Hi,
>    On my Fedora installation, emacs 25.3 was already installed
>    in /usr/bin. In another
>    location (~/Downloads/emacs26/install/bin/emacs) , I installed emacs
>    27.0 from source using ./configure, make and make install. $PATH
>    contains ~/Downloads/emacs26/install/ before /usr/bin.
>
> In this state, running "emacs --daemon" creates a emacs process, using
> the binary from ~/Downloads/emacs26/install as a subprocess of systemd.

As far as I understand it, when you are running systemd, every process
is a subprocess of systemd, because it's the init process, so it's at
the root of the process tree.

> But the systemd configuration still uses the configuration info
> from /lib/systemd/user/emacs.service, which is from the pre-installed
> emacs 25.3. Any systemd operations end up using the binary
> from /usr/bin.

Maybe because it doesn't use your $PATH configuration? The
emacs.service file doesn't seem to have anything version specific in
it.

> 1. Emacs man page, or --help does not give an obvious way to not use
> systemd for its daemon. Is it supported at all ?

I guess just don't use any "systemd operations"?

Currently Emacs doesn't use systemd at all, except that it takes
sockets passed by systemd and makes them available to the
`:use-external-socket' option of `make-network-process'.

> 2. If we are not making it easy to avoid systemd, let us configure it
> while installing? Emacswiki says that we need to copy the included
> emacs.service file to ~/.config/systemd/user/emacs.service. It seems to
> help - my emacsclient has not been hanging since then. But couldn't
> make install have copied this file by default ? Or used emacs.service
> file from the correct place when a binary from this emacs 27.0
> installation is being run as daemon ?

According to this comment in Makefile.in, it's not entirely clear
where the service file should get installed.

# Where the etc/emacs.service file is to be installed.
# The system value (typically /usr/lib/systemd/user) can be
# obtained with: pkg-config --variable=systemduserunitdir systemd
# but that does not respect configure's prefix.
# It is not clear where we should install this file when
# prefix != /usr (or /usr/local?) (eg for non-root installs).
# Other options include ~/.config/systemd/user/,
# $XDG_RUNTIME_DIR/systemd/user/
# It seems the user may end up having to make a manual link...
systemdunitdir=$(libdir)/systemd/user



reply via email to

[Prev in Thread] Current Thread [Next in Thread]