server: Use "normal" socket activation, not inetd

Systemd, when doing socket activation, pass file descriptors in a
non-stable order when there is multiples ones.

But we only use one, so we don't need to identify it, and the file
descriptors always start at 3.
So use 3 for the systemd service.

Source : sd_listen_fds (systemd man pages)

We also need to unset variables systemd pass to socket activated
process, since we don't need them and sub-process (footclient and
theirs forks) could be confused by those.

Closes #1107
This commit is contained in:
Max Gautier 2022-07-29 20:12:47 +02:00 committed by Daniel Eklöf
parent c0a7c7bf0d
commit ffdac61e2a
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 5 additions and 2 deletions

View file

@ -104,6 +104,8 @@
* Selection not being cancelled correctly when scrolled out.
* Extending a multi-page selection behaving inconsistently.
* Poor performance when making very large selections ([#1114][1114]).
* Bogus error message when using systemd socket activation for server
mode ([#1107][1107])
[1055]: https://codeberg.org/dnkl/foot/issues/1055
[1092]: https://codeberg.org/dnkl/foot/issues/1092
@ -111,6 +113,7 @@
[1111]: https://codeberg.org/dnkl/foot/issues/1111
[1120]: https://codeberg.org/dnkl/foot/issues/1120
[1114]: https://codeberg.org/dnkl/foot/issues/1114
[1107]: https://codeberg.org/dnkl/foot/issues/1107
### Security

View file

@ -1,8 +1,8 @@
[Service]
ExecStart=@bindir@/foot --server=0
ExecStart=@bindir@/foot --server=3
Environment=WAYLAND_DISPLAY=%i
UnsetEnvironment=LISTEN_PID LISTEN_FDS LISTEN_FDNAMES
NonBlocking=true
StandardInput=socket
[Unit]
Requires=%N.socket