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.tray...@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@.service > [Unit] > Description=email > > [Service] > ExecStart=/usr/bin/mailx -s 'Testing from socket' st...@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? > > > Motivation for was this i wanted to do perform a systemd-run of a > command outputting to that socket to pipe it into mailx. > > >