[systemd-devel] Is a socket with Accept=yes and ListenFIFO impossible?

Lennart Poettering lennart at poettering.net
Thu Sep 5 14:58:49 UTC 2024


On Do, 05.09.24 12:37, Steve Traylen (steve.traylen at cern.ch) wrote:

> Was trying to set up a trivial socket and service to process multiple
> inputs:
>
> # Socket emailoutput.socket
> [Unit]
> Description=Send email via a socket.
>
> [Socket]
> Accept=yes
> ListenFIFO=/run/emailoutput.socket
>
> # Service emailoutput at .service
> [Unit]
> Description=email
>
> [Service]
> ExecStart=/usr/bin/mailx -s 'Testing from socket' steve at example.ch
> StandardInput=socket
>
>
> Starting the socket always produces: "Unit configured for accepting sockets,
> but sockets are non-accepting. Refusing"
>
> Switching the socket to  "ListenStream=127.0.0.1:9999" then everything works
> I can netcat files into the network socket.
> Is it impossible to to Accept=yes with ListenFIFO?

Yes. FIFOs do not know any concept of connections. Instead each FIFO
is just a single ring buffer and any writer to it will end up writing
into the same ring buffer.

Lennart

--
Lennart Poettering, Berlin


More information about the systemd-devel mailing list