Re: Is a socket with Accept=yes and ListenFIFO impossible?

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

 



FIFOs aren't sockets – they do not have an equivalent to accept() and there is no multiplexing of inputs; all writes to the FIFO immediately go to the "listening" file descriptor. So it's almost more like a datagram socket than a stream one, in a sense.

If you want a true socket that's filesystem-based, create a Unix socket by specifying the path via ListenStream, then connect to it using nc -U.


On Thu, Sep 5, 2024, 13:38 Steve Traylen <steve.traylen@xxxxxxx> 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@.service
[Unit]
Description=email

[Service]
ExecStart=/usr/bin/mailx -s 'Testing from socket' steve@xxxxxxxxxx
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?


Motivation for was this i wanted to do perform a systemd-run of a
command outputting to that socket to pipe it into mailx.



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux